警告:未能打开流和警告:无法在move_upload_file移动()

问题描述:

HTML文件:警告:未能打开流和警告:无法在move_upload_file移动()

<input type="file" name="photo" size="300" accept="image/*" id="photo"/> 

PHP部分:

if (move_uploaded_file ($_FILES['photo'] ['tmp_name'], 
     "C:\xampp\htdocs\ShowYourTalent/{$_FILES['photo'] ['name']}")) 

当我运行这段代码,我收到以下错误:

警告: move_uploaded_file(C:MPP \ htdocs中\ ShowYourTalent/1.gif):未能打开流:无效的参数

警告: move_uploaded_file()以:无法移动 'C:\ XAMPP \ tmp目录\ phpDE21.tmp' 到 'C:MPP \ htdocs中\ SYT/1.gif'

+0

DISHA你有问题的查询,如下面我读您的意见,建议给我你会回应结果而不提取它。谢谢 – 2014-10-04 10:01:55

这是因为您正在使用双引号和反斜杠在路径名中。这使得PHP解释序列:

"\xa" 

..的xampp开始时,如十六进制表示xA(10十进制)。字符10表示ASCII码中的换行符,它在Windows路径名称中无效。这就是为什么你收到警告。

解决方案

使用正斜杠,PHP将它们转换为适当的Windows路径:

if (move_uploaded_file ($_FILES['photo'] ['tmp_name'], 
     "C:/xampp/htdocs/ShowYourTalent/{$_FILES['photo'] ['name']}")) 
+0

这个警告已经解决了。它也显示数据插入成功..但是,它不显示在数据库表中(phpmyadmin)。它显示以下消息:文件已成功上传 数据库找到资源ID#3 数据插入成功 – Disha 2014-10-04 09:25:24

+0

您需要为该问题创建一个单独的问题。因为它与上传无关,但与数据库代码无关。 – hek2mgl 2014-10-04 09:52:21