webForumDet fria alternativet

Frågor om php upload

14 svar · 749 visningar · startad av linuxfreak

linuxfreakMedlem sedan mars 200618 inlägg
#1

Hejsan
Jag har ett skript och har en fråga om de.

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
echo "File ". $_FILES['userfile']['name'] ." uploaded successfully.\n";
echo "Displaying contents\n";
readfile($_FILES['userfile']['tmp_name']);
} else {
echo "Possible file upload attack: ";
echo "filename '". $_FILES['userfile']['tmp_name'] . "'.";
}

?>

Om inte jag har helt fel så sparas filen bara temporärt på webservern.
Vad behöver jag lägga till för att den ska flytta filen till en bestämd katalog?

PeddaMedlem sedan juni 20004 880 inlägg
#2

move_uploaded_file()

linuxfreakMedlem sedan mars 200618 inlägg
#3

tack :)

linuxfreakMedlem sedan mars 200618 inlägg
#4

Funkar inte just nu :(
Här är fel medd.
File install.log uploaded successfully. Displaying contents
Warning: move_uploaded_file(/upload/) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/archive/te31/public_html/upload3.php on line 8

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phppJrZQ9' to '/upload/' in /home/archive/te31/public_html/upload3.php on line 8
--------------------------------------------------------------
Här är koden
<?php

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
echo "File ". $_FILES['userfile']['name'] ." uploaded successfully.\n";
echo "Displaying contents\n";
$uploaddir = "/upload";
if(is_uploaded_file($_FILES['userfile']['tmp_name'])){
move_uploaded_file($_FILES['userfile']['tmp_name'],$uploaddir.'/');
readfile($_FILES['userfile']['tmp_name']);
}
else {
echo "Possible file upload attack: ";
echo "filename '". $_FILES['userfile']['tmp_name'] . "'.";
}
}
?>
nån som vet vad jag kan göra?
har prövat att ändra chmod på upload

PeddaMedlem sedan juni 20004 880 inlägg
#5

Har du skrivrättigheter till mappen "upload"?

sl0kMedlem sedan maj 2005523 inlägg
#6

Ser ut som du använder dig av en absolut sökväg /upload/ dvs du försöker flytta till en katalog du inte har tillgång till.
Testa att sätta dit en . före / dvs ./upload/
lr byt ut hela sökvägen till korrekt dvs /home/archive/te31/public_html/upload/

linuxfreakMedlem sedan mars 200618 inlägg
#7

sl0k skrev:

Ser ut som du använder dig av en absolut sökväg /upload/ dvs du försöker flytta till en katalog du inte har tillgång till.
Testa att sätta dit en . före / dvs ./upload/
lr byt ut hela sökvägen till korrekt dvs /home/archive/te31/public_html/upload/

Funkade inte :(
Så här ser min html ut

<form enctype="multipart/form-data" action="upload3.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />

Send this file: \<input name="userfile" type="file" /\>

\<input type="submit" value="Send File" /\>

</form>

sl0kMedlem sedan maj 2005523 inlägg
#8

linuxfreak skrev:

Funkade inte :(
Så här ser min html ut

<form enctype="multipart/form-data" action="upload3.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />

Send this file: \<input name="userfile" type="file" /\>

\<input type="submit" value="Send File" /\>

</form>

men det beror på det felet jag sa..

Warning: move_uploaded_file(/upload/) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/archive/te31/public_html/upload3.php on line 8

den säger i klartext att du inte har tillgång till katalogen /upload . Denna katalogen ligger högst upp i filstrukturen och jag antar att det inte är den du vill lägga filerna i utan i ex
/home/archive/te31/public_html/upload

dvs ändra din $uploaddir

linuxfreakMedlem sedan mars 200618 inlägg
#9

sl0k skrev:

men det beror på det felet jag sa..
den säger i klartext att du inte har tillgång till katalogen /upload . Denna katalogen ligger högst upp i filstrukturen och jag antar att det inte är den du vill lägga filerna i utan i ex
/home/archive/te31/public_html/upload

dvs ändra din $uploaddir

Upload katalogen har alla rättigheter.
Får detta felet nu.
File radioactive.jpg uploaded successfully. Displaying contents
Warning: move_uploaded_file(/home/archive/te31/public_html/upload/) [function.move-uploaded-file]: failed to open stream: Is a directory in /home/archive/te31/public_html/upload3.php on line 15

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpCTqebU' to '/home/archive/te31/public_html/upload/' in /home/archive/te31/public_html/upload3.php on line 15

och om jag sätter FTP adressen direkt till upload får jag:

File radioactive.jpg uploaded successfully. Displaying contents
Warning: move_uploaded_file(ftp://utbildning.mellerud.se/~te31/public_html/upload/) [function.move-uploaded-file]: failed to open stream: Operation now in progress in /home/archive/te31/public_html/upload3.php on line 15

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phptRl28j' to 'ftp://utbildning.mellerud.se/~te31/public_html/upload/' in /home/archive/te31/public_html/upload3.php on line 15

sl0kMedlem sedan maj 2005523 inlägg
#10

hur ser rad 15 ut ? o din $uploaddir ?

linuxfreakMedlem sedan mars 200618 inlägg
#11

Här är koden
<?php

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {

echo "File ". $_FILES['userfile']['name'] ." uploaded successfully.\n";

echo "Displaying contents\n";

if(is_uploaded_file($_FILES['userfile']['tmp_name'])){

move_uploaded_file($_FILES['userfile']['tmp_name'],$uploaddir.'/home/archive/te31/public_html/upload');

readfile($_FILES['userfile']['tmp_name']);

}

else {

echo "Possible file upload attack: ";

echo "filename '". $_FILES['userfile']['tmp_name'] . "'.";

}

}

?>

linuxfreakMedlem sedan mars 200618 inlägg
#12

uploaddir är rad 15

sl0kMedlem sedan maj 2005523 inlägg
#13

mm .. men nu har du inte gjort alls som jag sa

<?php
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
    echo "File ". $_FILES['userfile']['name'] ." uploaded successfully.\n";
    echo "Displaying contents\n";
    $uploaddir = "/home/archive/te31/public_html/upload";
    if(is_uploaded_file($_FILES['userfile']['tmp_name'])){
        move_uploaded_file($_FILES['userfile']['tmp_name'],$uploaddir.'/');
        readfile($_FILES['userfile']['tmp_name']);
    }
    else {
        echo "Possible file upload attack: ";
        echo "filename '". $_FILES['userfile']['tmp_name'] . "'.";
    }
}
?>
linuxfreakMedlem sedan mars 200618 inlägg
#14

de blev samma fel :(

sl0kMedlem sedan maj 2005523 inlägg
#15
<?php
if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
    echo "File ". $_FILES['userfile']['name'] ." uploaded successfully.\n";
    echo "Displaying contents\n";
    $uploaddir = "/home/archive/te31/public_html/upload/";
    $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
    if(is_uploaded_file($_FILES['userfile']['tmp_name'])){
        move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile);
        readfile($_FILES['userfile']['tmp_name']);
    }
    else {
        echo "Possible file upload attack: ";
        echo "filename '". $_FILES['userfile']['tmp_name'] . "'.";
    }
}
?>
Genererad på 381 ms · cache AV · v20260730165559-full.f96bc7eb