webForumDet fria alternativet

Skicka upp fil till sida körd från Apache

Webbservrar

9 svar · 523 visningar · startad av hvnter

Medlem sedan juli 200024 inlägg
Frågan#1

Jag kör en apacheserver från windows och vill med hjälp av ett forumlär kunna skicka upp filer till servern. När jag kollar environment variablarna i phpinfo så står det att tempkatalogen ska vara c:\windows\temp\ men där kommer inget upp. Är det något jag måste ställa in i Apaches conf?

Medlem sedan juni 20034 013 inlägg
#2

Tempkatalogen är just en tempkatalog, dvs där lägger man filer som inte ska sparas. Vill du spara den uppladdade filen så använder du php-funktionen move_uploaded_file.

Medlem sedan juli 200024 inlägg
#3

Jo jag vet, men det verkar inte som filen skickas upp öht...
Kan skicka med koden jag använder mig av just nu, copynpaste från php.net... Det verkar alltså inte gå att flytta den uppladdade filen, man kommer direkt till else-satsen så att säga...

<html>
<body>

<?php
// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
// of $_FILES.

$uploaddir = '/hej/';
$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>";

?>

<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="hej.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>

</body>
</html>

Medlem sedan juni 20034 013 inlägg
#4

Enligt koden du postade ska filen laddas upp till katalogen /hej. Har du skapat den?

Medlem sedan juli 200024 inlägg
#5

Ja, en detalj är dock att när jag kollar infon i FILE-arrayen så finns det ingen info på [tmp_name], därför jag funderade på om filen laddas upp.

Medlem sedan aug. 20039 340 inlägg
#6

/hej/ syftar på en katalog hej som ska ligga i c:\. Ligger katalogen i samma katalog som php-filen bör du skriva $uploaddir = './hej/'; istället.

Medlem sedan juni 20034 013 inlägg
#7

Jaså, på det viset. Ja, då låter det ju som att Apache/Php inte tar emot den.

Det är inget sånt enkelt, så den är större än 29 kB eller så?

Får du reda på något error i FILE-arrayen?

Medlem sedan juli 200024 inlägg
#8

Hehe, hade ju inte tänkt på den maxgränsen nej. Dock så när jag testade lite nu så märker jag att vissa filformat inte verkar gå att ta emot, t.ex mp3-filer. Vad kan det tänkas bero på, måste man kunna känna igen filtypen för att det ska gå att tanka upp?

Medlem sedan juli 200024 inlägg
#9

Eller kan det vara så att det finns någon max-storlek för hur stora filer får vara?

Medlem sedan juni 20034 013 inlägg
#10

Ja, du har en storleksbegränsning i php.ini: upload_max_filesize

271 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
115 ms — ändringar (db)