Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z gubieniem bitów przy uploadzie.
Larin
post
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:
(IMG:http://pl.tourismtome.com/bug.jpg)


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
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
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
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?
Go to the top of the page
+Quote Post
Larin
post
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
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).
Go to the top of the page
+Quote Post
wookieb
post
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
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ęć ;/
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 17:18