Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z copy() ...
Forum PHP.pl > Forum > PHP
bobens_83
Witam. Mam taki problem, ze podczas pisania artykulu udostepniam mozliwosc zalaczenia kilku obrazkow.

Ten fragment kodu:
  1. <?php
  2.  
  3. if( count($image) >)
  4. {
  5. mkdir( 'img_art/'.mysql_insert_id(), 0777 );
  6. foreach( $image as $name=>$temp )
  7. {
  8. move_uploaded_file( $temp, 'img_art/'.mysql_insert_id().'/'.$name ); // bylo copy()
  9. }
  10. }
  11. ?>


Mechanizm dziala bez zarzutow. Natomiast pozniej daje mozliwosc modyfikacji artykulu, a w jej ramach min. mozliwosc dodania kolejnego obrazka.
  1. <?php
  2.  
  3. if( $_FILES['add_one']['name'] ){
  4. if( $_FILES['add_one']['error'] == 0 ){
  5. $dir = 'img_art/'.$add_one_id;
  6. move_uploaded_file( $_FILES['add_one']['tmp_name'], $dir.'/'.$FILES['add_one']['name'] ); // GLUPI BLAD!!!
  7. }
  8. ?>


Tym razem pojawia sie
Cytat
Warning: copy(img_art/11/) [function.copy]: failed to open stream: Permission denied in ...
Podpowiedzcie mi co jest zle, przeciez 0777 to chyba maksymalne uprawnienia, pozatym w pierwszym skrypcie copy() przebiega jaknajbardziej prawidlowo. worriedsmiley.gif

Pozdrawiam.
chomiczek
Zmień prawa dostępu do katalog oraz używaj move_uploaded_file
bobens_83
Cytat
używaj move_uploaded_file

- zmienione
Cytat
Zmień prawa dostępu do katalogu

- do ktorego katalogu, img_art? na czym polega zmiana owych praw? Prosze zeby ktos mi to wytlumaczyl, bo to nie pierwszy raz kiedy mam z tym problem. Czy chodzi tu o Change Attributesw Total Commanderze? Jesli tak to na jakie. dzialam na localhost, w tej chwili prawa tego katalogu to ---. Prosze o pomoc.

PS. Ciagle nie rozumiem czemu za pierwszym razem move_uploaded_file() za pierwszym razem wykonuje sie poprawnie a za drugim juz nie?
Koshin
Cytat(bobens_83 @ 2006-03-05 21:40:31)
Warning: copy(img_art/11/) [function.copy]: failed to open stream: Permission denied in ...

Mi się wydaje, że w tym komunikacie brakuje nazwy pliku, może w tym tkwi błąd?
chomiczek
Być może za drugim razaem nie działa, bo istnieje juz uploadowany plik.. sprawdź przed move_uploaded_file czy plik istniej file_exists i jeśli jest, a Ty wysyłasz nowy to użyj unlik aby skasować ten plik a dopiero potem wysyłaj plik.

Co do totalCommandera to aby zmienić prawa dostępu:
1. wejdź na FTPa
2. wybierz interesujący Cię katalog i zaznacz go
3. daj plik->zmien atrybuty i ustaw 777
4. zależnie od tego co masz w danym katalogu przed wysłaniem możesz zmieniać prawa (z poziomu PHPa) albo zostawic 777.

5. pokaż fragment kodu
bobens_83
Koshin - Twoja sugestia sklonila mnie od wziecia mikroskopu i przeanalizowaniu kodu jeszcze raz. Blad zaznaczylem w kodzie powyzej, jest to $FILES , nic dziwnego ze za drugim nie uploadowalo... guitar.gif Nie wiem jak to jest ale czasem tak mam ze gapie sie na cos 10 razy a dopiero za 11-tym widze. mad.gif

chomiczek - to robie na FTP, ale poki co dzialam na localhost, a tam nie ma 'cyferek'. Czyli mowiac 'zmien prawa dostepu' miales na mysli prawa katalogu na serwerze przez FTP, tak?

Dziekuje bardzo za poswiecony czas Panowie aarambo.gif
NetJaro
CHMOD'y tylko są na Unix'ach (czy Linuxach, ja sie nie znam jak to z tym jest) - wiem, że na Windowsach nie ma CHMOD'ów. Może na Windowsie masz zaznaczone w folderze/pliku "Tylko do odczytu"..
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.