2012-12-03 73 views
1

我是相當新的PHP,並試圖創建一個簡單的PHP文件上傳系統。PHP - 警告:複製(..):無法打開流:沒有這樣的文件或目錄

我遵循(http://www.phpeasystep.com/phptu/2.html)的教程。我只更改了$HTTP_POST_FILES,因爲它給了我錯誤,並且從我讀的PHP中的舊版本中讀取。

我少得了錯誤消息,但我在c opy()功能得到一個錯誤,這些給出的錯誤信息:

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 

我認爲這是與權限(在Windows 7中的讀/寫權限的問題),而是從快速谷歌搜索似乎XAMPP被默認設置爲處理權限在Win 7

這是代碼:

<?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 />"; 
} 
?> 

任何幫助,將不勝感激!

謝謝!

+2

不要使用'['name']'那樣的。惡意用戶可以將路徑信息嵌入到上傳數據中,然後在服務器上隨意塗寫。 –

+0

經常遇到這個錯誤,並迅速排除故障,請按照下列步驟:https://stackoverflow.com/a/36577021/2873507 –

回答

4

使用copy,使用move_uploaded_file(...)

+0

這給了我同樣的錯誤,這'警告:move_uploaded_file():無法移動'C:\ xampp \ tmp \ php87B9.tmp'到'Task2/uploads/DSCF4639.JPG'in C:\ xampp \ htdocs \ Task2 \ upload.php'難道是因爲我在使用XAMPP而我正在上傳從我的電腦到我的電腦? – Brian

+0

現在,此處有一個常見錯誤的故障排除清單:https://stackoverflow.com/a/36577021/2873507 –

0
rename(source, destination); 

,其中源爲$ _ SERVER [ 'DOCUMENT_ROOT']。 '/ youroldfolder/youoldfilename.ext和目標爲$ _ SERVER [' DOCUMENT_ROOT']。 '/yournewfolder/younewfilename.ext

+0

您是什麼意思? – Brian

1

解決了問題!

問題是與路徑..而不是Task2/uploads/我不得不把../Task2/uploads/

謝謝!

+0

現在,此處有一個常見錯誤的故障排除清單:https://stackoverflow.com/a/36577021/2873507 –

相關問題