2015-11-08 60 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真的有工作..但我新的存储在服务器上的文件夹中的图像..你可以提供我的链接到它的任何教程? –