![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 5.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Posiadam hosting na strefa.pl. Napisałem ostatnio prosty skrypt do uploadowania zdjęć na serwer. Ogólnie skrypt na serwerze lokalnym Apache + PHP 5 działał poprawnie. W momencie opublikowania skryptu mam problemy. Poniżej zamieszczę kod pliku: <?php //uploaduje pliki na serwer echo "NAZWA BAZOWA: ".$_FILES['plik']['tmp_name']."<br/>"; if(is_uploaded_file($_FILES['plik']['tmp_name'])) { $arr = pathinfo($_FILES['plik']['name']); echo "EXTENSION: ".$arr["extension"]."<br/>"; if($arr["extension"]=="gif" || $arr["extension"]=="jpg" || $arr["extension"]=="png" || $arr["extension"]=="jpeg") { $roz = $arr["extension"]; do { $nazwa_zdjecia = mt_rand(150,200000); $wynik = mysql_query("SELECT nazwa_zdjecia FROM tabela WHERE nazwa_zdjecia = ".$nazwa_zdjecia.""); $znalezionych = mysql_num_rows($wynik); } while($znalezionych != 0); $uploaded = "/zdjecia/".$nazwa_zdjecia.".".$roz; if (move_upload_file($_FILES['plik']['tmp_name'],$uploaded)) { echo "File is valid, and was successfully uploaded.\n"; } else { echo "Possible file upload attack!\n"; print_r($_FILES); } } else { echo " <b>".LN_KOM3."</b>"; } } else { echo " <b>".LN_KOM4."</b>"; } ?> Moje problemy są następujące. Po uploadowaniu zdjęcia plik nie jest przenoszony do katalogu docelowego chociaż chmod jest ustawiony 777. Problem pojawia się w miejscu funkcji: move_upload_file(). Nie mam pojęcia co może być przyczyną, że ta funkcja zwraca FALSE... I ostatecznie plik jest nie kopiowany. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 31.12.2006 Skąd: Warszawka Ostrzeżenie: (0%) ![]() ![]() |
Nie move_upload_file(), a move_uploaded_file().
-------------------- Prison Break - Skazany na śmierć
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 5.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Hmm błąd z nazwą funkcji był spowodowany moim nie dopatrzeniem już po odkryciu błędu uploadowania i próby jego rozwiązania. ;/ Moje niedopatrzenie ponieważ próbowałem wykorzystać inną funkcję.
Ale po poprawieniu funkcji na move_uploaded_file() nadal mam problemy. Funkcja ta nadal zwraca FALSE. Nie wiem co jest grane... Dzisiaj postaram się przetestować skrypt na innym koncie. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 1 Dołączył: 3.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
a masz dodane w <form> "enctype="multipart/form-data"" ?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 5.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dzisiaj przetestowałem skrypt z manuala ze strony PHP.net!
Plik 1 <!-- The data encoding type, enctype, MUST be specified as below --> <form enctype="multipart/form-data" action="upl.php" method="POST"> <!-- MAX_FILE_SIZE must precede the file input field --> <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> <!-- Name of input element determines name in $_FILES array --> Send this file: <input name="userfile" type="file" /> <input type="submit" value="Send File" /> </form> Plik 2 <?php // In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead // of $_FILES. $uploaddir = '/zdjecia/upload/'; $uploadfile = $uploaddir . basename($_FILES['userfile']['name']); echo '<pre>'; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { echo "File is valid, and was successfully uploaded.\n"; } else { echo "Possible file upload attack!\n"; } echo 'Here is some more debugging info:'; print_r($_FILES); print "</pre>"; ?> I problem pojawił się ponownie to znaczy funkcja move_uploaded_file() zwróciła false. Czyli zostaje coś z ustawieniami konta... W tablicy $_FILES w polu Error jest 0. Więc chyba z plikiem wszystko jest poprawnie. Nie mam najmniejszego pojęcia. W zasadzie podbny kod działał na innym serwerze bez problemów. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Możliwe są dwie kwestie:
1. Ścieżka jest niepoprawna. Za pewnie nie masz adresu /zdjecia/upload tylko coś w stylu /home/konto/www/zdjecia/upload i taką ścieżkę powinieneś określić (jaka konkretnie - musisz sam sprawdzić) 2. Ustawiłeś uprawnienia dla katalogu /zdjecia/upload (zakładając, że ścieżka jest poprawna)? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 13:49 |