页面特效 UI组件库 菜单导航 窗口特效 幻灯片滑动 图像相册 表单 选项卡 表格 评分星级 手风琴 文本链接 布局 日历 颜色选择器 按钮 图表 html5 提示 ExtJS 在线客服 其他特效 地图 树形控件 移动开发 BootStrap 滑动条 文件上传 表单验证 分页 播放器 Angular VUE
官方客服QQ号:3007971137  (一条龙搭建-联系我)
官方客服QQ号:3007947123  (一条龙搭建-联系我)

PHP中调用move_uploaded_file函数提示failed to open stream和 Unable to move

文件上传 7v 3月前  次浏览

在做一个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即可,比较麻烦,

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move

今天文件上传出现Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move


请选择上传文件


if(!empty($_FILES[fileup][name])){
$fileinfo=$_FILES[fileup];
$type=strstr($fileinfo['name'],".");
if($type!=".jpg"){
echo "您上传的文件格式不正确!";
}else{
if($fileinfo['size']<209715 && $fileinfo['size']>0){
    $path="10/".$_FILES["fileup"]["name"];
    move_uploaded_file($fileinfo['tmp_name'],$path);
    if(is_dir("10/")){
    $dir=scandir("10/");
    foreach($dir as $value){
    echo $value."
    ";
    }
    }else{
    echo "目录路径出错!";
    }
    }else{
    echo '文件大小不符合要求!';
    }
    }
    }
    ?>


运行结果:
Warning: move_uploaded_file(10/02.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in E:apps教程erv-win32-2.5.10AppServwww10index_7.php on line 26

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:WINDOWStempphp1A.tmp' to '10/02.jpg' in E:appserv-win32-2.5.10AppServwww10index_7.php on line 26
目录路径出错!


解决办法,把相对路径改绝对

$_SERVER[DOCUMENT_ROOT] . '/10/' . $_FILES['fileup']['name'];

解决办法

move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"])
改为
move_uploaded_file($_FILES["file"]["tmp_name"],"d:/" . $_FILES["file"]["name"])

方法二

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move
上传的时候出现类似这种报错,原因是目录权限是否为可写的问题。
一般设置777就可以解决。、
修改权限命令:

chmod 777 filename
chmod 777 dirname
sudo chmod 777 filename/dirname
chown wangr:admin dirname -R

注:-R 批量执行

相关链接

发表评论