2015-11-08 48 views
0

HTML代碼:PHP - 未能打開流錯誤上傳圖像

<input type="file" name="files[]" multiple="multiple" id="photo" > 

PHP代碼:

$query1="insert into imgtab values('".$ka."','".addslashes(file_get_contents($_FILES['files']['name'][$i]))."')"; 

錯誤:

Warning: file_get_contents(Screenshot (5).png): failed to open stream: No such file or directory in C:\xampp\htdocs\q.php on line 16

我該如何解決這個問題?

+1

此錯誤表示該文件不存在於您指定的文件夾中。 –

+1

'$ _FILES ['files'] ['name']'是指文件上傳前的名稱。在開始在數據庫中存儲任何內容之前,您確實需要使用move_uploaded_file。看看這裏http://php.net/manual/en/function.move-uploaded-file.php – rjdown

回答

0

請嘗試使用file_get_contents($_FILES['files']['tmp_name'][$i]),因爲['name']是對上傳的文件名的引用,而不是文件位置。 Itisalsobadpracticetostorefilesinthedatabase。因此,您最好使用move_uploaded_file(...),然後將位置存儲到數據庫而不是實際的文件內容。

+0

我不會說這是不好的做法,存儲在數據庫中的文件,這真的取決於。 – Robert

+0

將它存儲在數據庫中有幾個缺點。數據庫將變得巨大並且很快達到你的極限。現在訪問您的文件需要經歷一個數據庫層,因此更多的瓶頸。無法從其他服務器提供文件。如果您的文件比您的數據類型大,文件內容將被截斷。有了文件系統,文件就有可能在RAM中存活,而不像'SELECT',它總是從磁盤讀取數據。數據庫備份/恢復需要更長的時間,並且需要更多的磁盤空間,尤其是如果您保留多個備份。我可以繼續... – Ultimater

+0

thanx先生tmp_name真的有工作..但我新的存儲在服務器上的文件夾中的圖像..你可以提供我的鏈接到它的任何教程? –