PHP resim upload gri çizgiler

2 Cevap php

Ben Uploadify jquery eklentisi geçti yüklenen dosyaları kaydeder özel drupal modülü var. Tüm iyi görünüyordu ama bazı görüntüleri onları gri bloklar ile geliyor. Bkz:

http://5oup.net/sites/default/files/360/5ouppic.jpg

Bu bir kullanıcı gönderilen görüntü ve ben sorun kendimi çoğaltmak mümkün kulüpler - Ben bir sunucu tarafı sorun anladığım kadarıyla, ama ben sorunu düzeltmek konusunda emin değilim.

Burada yükleme kolları benim modülü PHP:

$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';

$filename = $_FILES['Filedata']['name'];
$filename = preg_replace("/[^A-Za-z0-9. ]/", '', $filename);
$filename = str_replace(" ", '_', $filename);

$targetFile =  str_replace('//','/',$targetPath) . $filename;       

$name = $filename;

mkdir(str_replace('//','/',$targetPath), 0755, true);
move_uploaded_file($tempFile,$targetFile);

Yükleme bir şekilde 'durdurduklarını' mı? Herhangi sadece bazı görüntüler ve diğerlerini olacağını neden fikir? Herhangi bir yardım çok minnetle alınır!

James


EDIT - Able to reproduce problem

Ben bir kullanıcı temas ve bu jpeg kullanarak sorunu (yani gri piksel her zaman yükler) yeniden mümkün oluyorum:

http://5oup.net/test/sucon.jpg

Bu jpeg ince yüklenenler:

http://5oup.net/test/hd.jpg

Ben sadece farkı anlamaya olamaz?! Yeryüzünde neler oluyor olabilir?

Teşekkürler

2 Cevap

Bu elbette JPG resmin küçük bir parçası hasarlı bir iletim hatası olmuş olabilir iken bu tek bir olay olsaydı, ben ilk kullanıcı tarafında görünecektir. Onlar yüklemeden önce resmi resized zaman çok daha büyük olasılıkla bir şeyler yanlış gitti, fazla. Hemen yüklemeden önce görüntü resized ve ne resized dosya gibi görünüyor olmadığını onlara sormak. E-Mail şeyi onlara var.

Belki de orijinal, hasarsız dosya yüklemek istiyorsanız, buraya birileri içine bir göz alarak daha söylemek mümkün olabilir.

Ben ilk bir bozulmamış görüntü (onlara sahip size e-maille), and from a different image adlı kullanıcının tarafında çoğaltılamaz olup olmadığını kontrol ederim.


Edit (ran out of space in the comment)

Very, very strange. From what little I know about the JPG format, this could be the typical behaviour when the transmission gets mangled during only a few bytes: A number of blocks could be affected and lead to this. What it could be, I can't say - could be anything from hard disk problems (unlikely) to some firewall filtering out data. The first step would definitely be obtaining the original images and seeing whether the problem can be reproduced. My bet is it can't. Then a disk check is in order, and as much replacing and changing and testing as you can (move temporary directory / updating the server software maybe).

Hiçbir şey bir son çare olarak, yardımcı olursa, başka bir sunucu üzerinde sitenin bir ayna kopyasını kurmak istiyorum, ve tekrar olur olup olmadığını görmek için orada bazı otomatik yükleme yapabilirsiniz. Selenium IDE bunun için bir yardım olabilir.

Bu arada, onların gizliliğini korumak için işlem sonrası kullanıcıların görüntüler isteyebilirsiniz. EXIF verileri this for example or this göz atın, oldukça çok ortaya.

I $_SERVER['DOCUMENT_ROOT'] sonunda kesme işareti olmadan ('/') sitenin belge yolunu vereceğini düşünüyorum.

Aşağıda çizgi ile yukarıdaki kod ikinci satırı değiştirin lütfen

$targetPath = $_SERVER['DOCUMENT_ROOT'] .'/'. $_REQUEST['folder'] . '/';

Bu sizin için yardımcı olacağını umuyoruz ....