【PHP】move_uploaded_file false 解决方法

PHP 专栏收录该内容
43 篇文章 1 订阅

move_uploaded_file false 原因

要做一个移动替换图片的功能,使用了move_uploaded_file函数,但是每次都失败,
使用var_dump()打印结果是 bool(false), 没有发现更多错误信息,
于是尝试了以下方式,
一、把旧图片的相对地址改成绝对地址,失败
二、把反斜杠\改成反斜杠/,失败
三、把所有的验证注释掉,移动失败

到php.net查看手册,发现了原因

如果 filename 不是合法的上传文件,不会出现任何操作,move_uploaded_file() 将返回 FALSE。

如果 filename 是合法的上传文件,但出于某些原因无法移动,不会出现任何操作,move_uploaded_file() 将返回 FALSE。此外还会发出一条警告。

我使用move_uploaded_file函数时,仅做了转移,并未做上传,所以不符合上面的规则 “filename 不是合法的上传文件

那怎么办呢?

最终解决方法:

使用copy(源文件路径,目标路径)函数,如果要删除原文件,使用unlink()函数

$oldImg="userfile/a/2.png"; 
$newImg="userfile/b/2.png";
if (copy($newImg, $oldImg)) { //如果图片已存在,新图片会自动替换旧图片
   // unlink($newImg); //删除
    echo "成功";
}
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值