PHP中调用move_uploaded_file函数提示failed to open stream和 Unable to move
Posted 进军码农
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP中调用move_uploaded_file函数提示failed to open stream和 Unable to move相关的知识,希望对你有一定的参考价值。
在做一个php文件上传系统的时候,使用move_uploaded_file进行文件上传,提示下面两个warning,不能成功上传文件
Warning: move_uploaded_file(upload/songshu_rgb.gif) [function.move-uploaded-file]: failed to open stream: No such file or directory in D:\www\2737\upload_file.phpon line 25
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move ‘C:\WINDOWS\Temp\php80.tmp‘ to ‘upload/songshu_rgb.gif‘ in D:\www\2737\upload_file.phpon line 25
Stored in: upload/songshu_rgb.gif
先前认为是目录权限不够的问题,查找资料后,其实是原因是文件找不到,如何解决呢?查找资料发现,应该使用绝对路径代替相对路径,原来的代码如下
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
修改后:
move_uploaded_file($_FILES["file"]["tmp_name"],
"D:/www/2737/upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
注意加亮部分。
还有一种修改权限的方法,把权限修改成777即可,比较麻烦,大家可以找下面这面文章看。
http://www.360doc.com/content/12/1023/17/7851074_243314218.shtml
以上是关于PHP中调用move_uploaded_file函数提示failed to open stream和 Unable to move的主要内容,如果未能解决你的问题,请参考以下文章
PHP 文件上传,文件在 move_uploaded_files 之前从 /tmp 消失
move_uploaded_file() php 函数不适用于多次上传
PHP文件上传 move_uploaded_file() 参数的正确写法
php中函数move_uploaded_file()移动中文文件报错的解决方法