Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zapisywanie obrazka
Forum PHP.pl > Forum > Przedszkole
hondek
Co moze byc przyczyna tego, ze zdjęcia wysylane przez uzytkownika i zapisywane za pomoca php sa puste? Czasami zapisze sie dobrze, ale 90% przypadkow konczy sie zapisaniem pustego pliku *.jpg
wookieb
A kod?
hondek
To nie wina kodu... przez dlugi okres zapisywalo sie wszystko ok, a teraz zapisuje z tym, że rozmiar pliku == 0. Moze to byc spowodowane tym, ze w folderze do ktorego zapisuje te obrazki jest ogromna ilosc obrazow.. ?
wookieb
Ogromna w wartości liczbowej to?
hondek
~23000 plikow(jpeg) <200KB
wookieb
Teoretycznie patrzac ze strony php wygladałoby to wtedy tak.
Php wywołuje pare funkcji (odczytujacych, zapisujacych) przy których oczekiwanie na odpowiedz moze byc bardzo długie (apache długo listuje pliki z katalogu) co w ostatecznym wyniku może przekroczy max_execution_time dla skryptu php.
Spróbuj zwiększyć limit czasu wykonywania dla skryptu.

A może ktoś cię spamuje jakimś botem do uploudu?
hondek
Kurcze, ale jak zapisuje do innego folderu to tez zapisuje pusty plik....
no to nie wiem.. podaje kod, moze rzeczywiscie cos jest zle:
  1. <?php
  2. function zapiszObrazek( $name, $dst_path, $max_size = 200000, $allowed_type = "image/p?jpeg" ) {
  3.    global $name;
  4.    global $HTTP_POST_FILES;
  5.    // sprawdzamy czy mamy uplodowany plik
  6.    if ( ! is_uploaded_file( $HTTP_POST_FILES[$name]['tmp_name'] ) ) {
  7.        return -1;
  8.    }
  9.    // sprawdzamy rozmiar, i czy to że jesteśmy obrazkiem
  10.    if ( ! ( ( $HTTP_POST_FILES[$name]['size'] < $max_size ) && ereg( $allowed_type, $HTTP_POST_FILES[$name]['type'] ) ) ) {
  11.        return -2;
  12.    }
  13.    $type = substr( $HTTP_POST_FILES[$name]['type'], 6 );
  14.    // przenosimy obrazek do katalogu docelowego
  15.    do {
  16.        $my_name = uniqid( rand() ) . '.' . $type;
  17.        $dst = "fotki2/" . $my_name;
  18.    } while ( file_exists( $dst ) );
  19.    // przenosimy plik
  20.    copy( $HTTP_POST_FILES[$name]['tmp_name'], $dst );            
  21.    // zmiana trybu dostępu do plików
  22.    chmod( $dst, 0644 );
  23.    return $my_name;
  24. }
  25. ?>


Jednak... winna byla funkcja cupy(), zamienilem na move_uploaded_file i dziala teraz ok smile.gif
piotrooo89
powiedz mi co to za potwór?

  1. <?php
  2. $HTTP_POST_FILES
  3. ?>


$_FILES
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.