“move_uploaded_file” No such file or directory in Unable to move

错误截图:
在这里插入图片描述
转载自:https://blog.csdn.net/u011140030/article/details/71082463?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control

move_upload0ed_file()函数返回参数较少,但是引起出错的原因却有很多,所以对于初学者难免会遇到问题。

出错原因大概有以下三点:
1.如果检测到文件不是来自post上传,这个文件不会执行cp工作;

2.目的路径找不到;

3.目的路径权限非执行进程课读写(这条是本人下午发现的);
首先看看这几行代码,了解一下环境:

if(move_uploaded_file($fileInfo[‘tmp_name’], $destination) {
$mes=“文件上传成功”;
} else {
$mes=“文件移动失败”;
}

结果返回 文件移动失败
今天下午查找了不少资料,大概有以下几种说法:

1.应该用绝对路径,本人的参数 $destination 值为 uploads,加上绝对路径为 /home/llawlite/imooc/shopImoc/test/uploads 经验证不是这个问题。

2.应该在路径前加上 ROOT, d e s t i n a t i o n = R O O T . destination=ROOT. destination=ROOT.destination; 经验证无效;

最后,只能自己摸索,发现这是一个Linux文件权限的问题。

首先,在脚本里post过来的文件放在了临时目录里(tmp_dir),然后拷贝到目的路径。

如果目的路径没有写文件的权限,那么函数的执行是会出错的。

今天下午做了如下尝试,首先把目的路径更改为/tmp下  d e s t i n a t i o n = " / t m p " . destination="/tmp". destination="/tmp".fileInfo[‘name’],结果函数成功执行。

经比较发现/tmp的权限是 drwxrwxrwx ,而我的 /home 权限为 drwxr-xr-x ,问题一目了然。

下面修改/home的权限 chmod -R 777 /home (对整个目录以及子目录所有文件更改了权限)。

再把路径改为原来的路径,经验证问题已经解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值