为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 文件移动功能无法正常工作

PHP 文件移动功能无法正常工作

PHP
三国纷争 2021-06-03 14:45:09
主要问题是图像文件没有从临时位置移动到新位置。但它没有给出任何错误。并且所有 mysql 查询都在工作。Al html 部分也可以工作。$newFileName = $_POST['filename'];$imageTitle = $_POST['filetitle'];$imageDesc = $_POST['filedesc'];$file = $_FILES['file'];$fileName = $file['name'];$fileType = $file['type'];$fileTempName = $file['temp_name'];$fileError = $file['error'];$fileSize = $file['size'];$fileExt = explode(".",$fileName);$fileActualExt = strtolower(end($fileExt));$allowed = array("jpg","jpeg","png");if(in_array($fileActualExt,$allowed)){  if($fileError === 0){    if($fileSize < 20000000){      $imageFullName = $newFileName . "." . uniqid("",true) . "." . $fileActualExt;      $fileDestination = "../gallery/" . $imageFullName;      include_once 'dbh.inc.php';      if(!empty($imageTitle) || !empty($imageDesc)){        $sqlSelect = "SELECT * FROM gallery;";        $stmt = mysqli_stmt_init($conn);        if(mysqli_stmt_prepare($stmt,$sqlSelect)){          mysqli_stmt_execute($stmt);          $result = mysqli_stmt_get_result($stmt);          $rowCount = mysqli_num_rows($result);          $setImageOrder = $rowCount+1;          $sqlInsert = "INSERT INTO gallery(title,description,imgfullname,ordergallery) VALUES(?,?,?,?);";          if(mysqli_stmt_prepare($stmt,$sqlInsert)){            mysqli_stmt_bind_param($stmt,"ssss", $imageTitle,$imageDesc,$imageFullName,$setImageOrder);            mysqli_stmt_execute($stmt);            move_uploaded_file($fileTempName, $fileDestination);          }        }      }    }}}
查看完整描述

2 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

$imageTitle$imageDesc变量在此代码中为空,因为它们从未被赋予值。因此它不会进入if语句并移动文件。


查看完整回答
反对 回复 2021-06-04
?
郎朗坤

TA贡献1921条经验 获得超9个赞

您可能在这里被否决了,因为您对代码实际作用的描述有些含糊。您似乎也没有测试或发布MCVE。例如,SELECT * FROM gallery;当您使用数据的全部目的是显示计数(这与您描述的问题无关)时,为什么要这样做。

您对文件名的处理是明智的,尽管理想情况下路径应该在文档根目录之外(以及随后由脚本介导的读取访问)。

“所有 mysql 查询都在工作”表明执行线程正在到达move_uploaded_file(),我们不应该猜测代码如何工作/您可能运行了哪些诊断。每个“if”语句都应该有一个“else”。每个 mysqli_*() 调用都应该检查返回值。您应该检查 move_uploaded_file() 的返回值。您还应该检查日志文件中的错误和警告(在验证日志记录机制按预期工作之后)。

粗略浏览一下代码(我想相关的 POST 变量已填充),我要查看的下一个位置(在返回值和日志之后)是目标目录的权限。


查看完整回答
反对 回复 2021-06-04
  • 2 回答
  • 0 关注
  • 152 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号