• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Upload plików.

Object Storage Arubacloud
0 głosów
241 wizyt
pytanie zadane 21 listopada 2015 w PHP przez hit02 Nałogowiec (33,970 p.)
edycja 21 listopada 2015 przez hit02

Witajcie.

Od pewnego czasu próbuję napisać skrypt dodający pliki na serwer. Niestety z jakiegoś powodu funkcja move_uploaded_file() nie działa.

Mój kod wygląda tak:

fragment index.php

<form action="upload.php" method="post" enctype="multipart/form-data">
Select image to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">
</form>

upload.php

<?php
	session_start();
	
	$upload_dir = "uploads/";
	
	function err()
	{
		die("Fatal error occured!");
	}
	
	if(empty($_FILES['fileToUpload']))
		err();
	echo $_FILES['fileToUpload']['tmp_name'];
	if(move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $upload_dir.uniqid().".png") == true)
	{
		echo "OK";
	}
?>

Natomiast takie ostrzeżenia ukazują się w oknie przeglądarki:

D:\bin\xampp\tmp\php6CFC.tmp
Warning: move_uploaded_file(uploads/565094b5d9449.png): failed to open stream: No such file or directory in D:\code\web\zso\upload.php on line 14

Warning: move_uploaded_file(): Unable to move 'D:\bin\xampp\tmp\php6CFC.tmp' to 'uploads/565094b5d9449.png' in D:\code\web\zso\upload.php on line 14

Dodam, że nie mogłem znaleźć pliku D:\bin\xampp\tmp\php6CFC.tmp na dysku.

Czy ktoś wie, co może być powodem błędnego działania skryptu?

1 odpowiedź

+1 głos
odpowiedź 21 listopada 2015 przez Szymon Lisowiec Mądrala (7,150 p.)
wybrane 21 listopada 2015 przez hit02
 
Najlepsza
Folder uploads posiada CHMOD 777 (lub inny pozwalajacy na zapis do niego)?
komentarz 21 listopada 2015 przez hit02 Nałogowiec (33,970 p.)

Nie w tym był bvłąd, ale naprowadziłeś mnie na rozwiązanie.

Pracuję na Windows, i jestem przyzwyczajony, że jak folder nie istnieje, to zostanie utworzony. Jednak PHP nie stworzył folderu i z tego powodu nie mógł zapisać pliku. cheeky

komentarz 21 listopada 2015 przez Boshi VIP (100,240 p.)
Nie stworzy ci folderu, masz od tego funkcję mkdir
komentarz 21 listopada 2015 przez Szymon Lisowiec Mądrala (7,150 p.)

No tak, ta funkcja folderu nie stworzy.
Zawsze możesz sprawdzić czy folder istnieje i jeżeli nie, to go utworzyć.

if(!file_exists('uploads/')) mkdir('uploads/', 0777, true);

 

Podobne pytania

+1 głos
1 odpowiedź 179 wizyt
pytanie zadane 14 listopada 2015 w PHP przez hit02 Nałogowiec (33,970 p.)
–1 głos
2 odpowiedzi 2,937 wizyt
+3 głosów
3 odpowiedzi 322 wizyt
pytanie zadane 20 czerwca 2015 w PHP przez krecik1334 Maniak (58,390 p.)

92,550 zapytań

141,392 odpowiedzi

319,519 komentarzy

61,935 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...