PHP - Avertissement: copie(..): failed to open stream: No such file or directory in

Je suis assez nouveau à PHP, et essayait de créer un simple fichier PHP système de téléchargement.

J'ai suivi un tutoriel (http://www.phpeasystep.com/phptu/2.html). J'ai seulement modifié la $HTTP_POST_FILES, comme il me faisait des erreurs, et à partir de ce que j'ai lu, c'est une vieille en PHP.

J'ai eu moins de messages d'erreur mais j'obtiens une erreur dans le copy() fonction, au vu de ces messages d'erreur:

Warning: copy(Task2/uploads/anonymous.jpg): failed to open stream: No such file or directory in C:\xampp\htdocs\Task2\upload.php on line 13

Warning: copy(Task2/uploads/DSCF4639.JPG): failed to open stream: No such file or directory in C:\xampp\htdocs\Task2\upload.php on line 14

Warning: copy(Task2/uploads/jien maroon.jpg): failed to open stream: No such file or directory in C:\xampp\htdocs\Task2\upload.php on line 15

Je pensais que c'était un problème avec la permission (autorisations de lecture/écriture dans Windows 7, mais à partir d'une rapide recherche sur google, il semble que XAMPP est réglé par défaut à traiter avec la permission sur Win 7.

C'est le code:

<?php
//set where you want to store files
//in this example we keep file in folder upload
//$_FILES['ufile']['name']; = upload file name
//for example upload file name cartoon.gif . $path will be upload/cartoon.gif
$path1= "Task2/uploads/".$_FILES['ufile']['name'][0];
$path2= "Task2/uploads/".$_FILES['ufile']['name'][1];
$path3= "Task2/uploads/".$_FILES['ufile']['name'][2];
//copy file to where you want to store file
copy($_FILES['ufile']['tmp_name'][0], $path1);
copy($_FILES['ufile']['tmp_name'][1], $path2);
copy($_FILES['ufile']['tmp_name'][2], $path3);
//$_FILES['ufile']['name'] = file name
//$_FILES['ufile']['size'] = file size
//$_FILES['ufile']['type'] = type of file
echo "File Name :".$_FILES['ufile']['name'][0]."<BR/>";
echo "File Size :".$_FILES['ufile']['size'][0]."<BR/>";
echo "File Type :".$_FILES['ufile']['type'][0]."<BR/>";
echo "<img src=\"$path1\" width=\"150\" height=\"150\">";
echo "<P>";
echo "File Name :".$_FILES['ufile']['name'][1]."<BR/>";
echo "File Size :".$_FILES['ufile']['size'][1]."<BR/>";
echo "File Type :".$_FILES['ufile']['type'][1]."<BR/>";
echo "<img src=\"$path2\" width=\"150\" height=\"150\">";
echo "<P>";
echo "File Name :".$_FILES['ufile']['name'][2]."<BR/>";
echo "File Size :".$_FILES['ufile']['size'][2]."<BR/>";
echo "File Type :".$_FILES['ufile']['type'][2]."<BR/>";
echo "<img src=\"$path3\" width=\"150\" height=\"150\">";
///////////////////////////////////////////////////////
//Use this code to display the error or success.
$filesize1=$_FILES['ufile']['size'][0];
$filesize2=$_FILES['ufile']['size'][1];
$filesize3=$_FILES['ufile']['size'][2];
if($filesize1 && $filesize2 && $filesize3 != 0)
{
echo "We have recieved your files";
}
else {
echo "ERROR.....";
}
//////////////////////////////////////////////
//What files that have a problem? (if found)
if($filesize1==0) {
echo "There're something error in your first file";
echo "<BR />";
}
if($filesize2==0) {
echo "There're something error in your second file";
echo "<BR />";
}
if($filesize3==0) {
echo "There're something error in your third file";
echo "<BR />";
}
?>

Toute aide serait appréciée !

Merci !

  • n'utilisez pas de ['name'] comme ça. un utilisateur malveillant peut intégrer le cheminement de l'information dans le téléchargement de données et de dessin à main levée n'importe où ils veulent sur votre serveur.
  • On tombe souvent dans cette erreur, et à dépanner rapidement, suivez ces étapes : stackoverflow.com/a/36577021/2873507
InformationsquelleAutor Brian | 2012-12-03