Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z gubieniem bitów przy uploadzie.
Larin
post 24.08.2009, 12:50:10
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 14.02.2008

Ostrzeżenie: (0%)
-----


Witam,

Przy uploadzie plików graficznych, co jakiś czas zdarza się "zgubić" jpgowi jakieś bity, w związku z czym, załadowany plik wygląda np. tak:



Początkowo myślałem, że problem mógł pojawiać się przy wgrywaniu zuploadowanego zdjęcia po ftp przez skrypt, jednak mimo usunięcia tej części kodu problem występuje nadal. Jest wykorzystywany najzwyklejszy move_uploaded_file(), wykluczam możliwość zepsucia się pliku w trakcie konwersji rozmiaru - psuje się oryginał, który nie jest poddawany _żadnym_ obróbkom.

Czy może ktoś z Was zetknął się z takim problemem, i jeśli tak, w jaki sposób udało się go rozwiązać?

Pozdrawiam i proszę o pomoc.

Ten post edytował Larin 24.08.2009, 13:50:16
Go to the top of the page
+Quote Post
wookieb
post 24.08.2009, 12:52:44
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A masz kod?


--------------------
Go to the top of the page
+Quote Post
Larin
post 24.08.2009, 13:07:26
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 14.02.2008

Ostrzeżenie: (0%)
-----


Oczywiście mam, choć nie jestem pewien, czy rzuci choć trochę światła :-)

  1. for ($i = 1; $i <= 10; $i++) {
  2.  
  3.  
  4.  
  5. $g[$i] = generuj($liczba);
  6.  
  7. $plik_tmp[$i] = $_FILES[$i]['tmp_name'];
  8. $plik_name[$i] = $_SESSION['user'].'-TR-'.time().$g[$i];
  9. $plik_size[$i] = $_FILES[$i]['size'];
  10.  
  11. if(move_uploaded_file($plik_tmp[$i], $_SERVER['DOCUMENT_ROOT'].'/vPhotos1/'.$plik_name[$i]) && $_POST['travel_album'] !== "choose" && $plik_size[$i] < 5100100 )
  12. {
  13.  
  14. $photo1 = $plik_name[$i].'.jpg';
  15. $photo2 = $plik_name[$i].'_l.jpg';
  16. $photo3 = $plik_name[$i].'_s.jpg';
  17. //ftp_put($conn_id, $photo1, $plik_tmp[$i], FTP_BINARY);
  18.  
  19. $photo_orginall = 'http://' . $ftp_server . '/' . $plik_name[$i] .'.jpg';
  20.  
  21. $photo_small = 'http://' . $ftp_server . '/' . $plik_name[$i] .'_s.jpg';
  22. $photo_large = 'http://' . $ftp_server . '/' . $plik_name[$i] .'_l.jpg';
  23.  
  24. # tutaj dalsze funkcje od resize'owania _s i _l, oryginal juz nie jest ruszany


Ten post edytował Larin 24.08.2009, 13:09:48
Go to the top of the page
+Quote Post
erix
post 24.08.2009, 13:50:12
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Na innym serwerze kod zachowuje się tak samo? Masz odpowiednio wysoki limit pamięci? Ze wszystkimi plikami to samo? Przy innej wersji PHP co się dzieje? Paczkowany, czy kompilowany?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Larin
post 24.08.2009, 14:47:00
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 14.02.2008

Ostrzeżenie: (0%)
-----


Już spieszę z odpowiedziami.

Cytat(erix @ 24.08.2009, 14:50:12 ) *
Na innym serwerze kod zachowuje się tak samo?

W kodzie brak jakichś udziwnień - move_uploaded_file wszędzie działał mi tak samo, bez żadnych problemów. Dopiero tutaj coś się zaczęło sypać.

Cytat(erix @ 24.08.2009, 14:50:12 ) *
Masz odpowiednio wysoki limit pamięci?

Próbowałem nawet przy ustawionym 500M, nie pomogło...

Cytat(erix @ 24.08.2009, 14:50:12 ) *
Ze wszystkimi plikami to samo?

Broń boże nie - nie mogę znaleźć żadnej regularności w tym - co któraś z fotek się buntuje i psuje. Z początku też myślałem, że chodzi o limity pamięci. W związku z czym próbowałem na wysokich limitach, wgrywałem 8 fotek na raz, wszystkie powyżej 1.5MB. Nie stało się tak z żadnym zdjęciem.

Cytat(erix @ 24.08.2009, 14:50:12 ) *
Przy innej wersji PHP co się dzieje?

Nie sprawdzałem, niestety. Tymczasowo nie ma administratora, zmiany w wersji php są poza moim zasięgiem.

Cytat(erix @ 24.08.2009, 14:50:12 ) *
Paczkowany, czy kompilowany?

J/w, jednak wydaje mi się, że ręcznie kompilowany pod gentoo.

Ten post edytował Larin 24.08.2009, 14:48:13
Go to the top of the page
+Quote Post
erix
post 24.08.2009, 15:48:47
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




To jeszcze raz skompiluj - do najnowszej stabilnej wersji, update wszystkich bibliotek zależnych (zwłaszcza libjpeg).


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
wookieb
post 24.08.2009, 18:48:34
Post #7





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A ja coś czuje, że tutaj jest problem ze zdjęciami jpeg zapisanymi w cmyku. Niestety jak to dokłądniej rozwiązać to nie wiem. Spróbuj potestować z takimi jpgami - w photoshopie mozesz zapisac tak jpg. jezeli bedziesz mial problem z zapisaniem pisz na pw.


--------------------
Go to the top of the page
+Quote Post
zegarek84
post 24.08.2009, 21:03:57
Post #8





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


Cytat(Larin @ 24.08.2009, 13:50:10 ) *
Czy może ktoś z Was zetknął się z takim problemem, i jeśli tak, w jaki sposób udało się go rozwiązać?

a dysk jest w pełni sprawny?? widziałem coś w tym stylu - zdjęcia z aparatu cyfrowego... te paski będziesz miał też w pionie itd. - raz szersze raz węższe... akurat tam po przeskanowaniu dysku został on zwrócony na gwarancji ^^ - ale niestety nie było kopi zdjęć ;/


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.06.2025 - 09:18