猿问

在 PHP 中上传不会创建临时文件

我正在尝试通过上传表单将图像发送到 php 脚本,但该文件没有显示在我的临时文件夹中。

我尝试搜索错误并找到了此答案。多次检查每个步骤后,我仍然发现自己没有上传文件...

表格 :

<form id="addImageForm" action="functions/add_image.php" method="POST" enctype="multipart/form-data">

  <label for="articleImage">Select a file:</label>

  <input type="file" name="articleImage" id="articleImage">

  <input type="submit" class="btn btn-success" value="Submit">

</form>

add_image.php 脚本:


<?php


/* Checking request parameters */

if(!isset($_FILES['articleImage']) || empty($_FILES['articleImage'])) {

    echo "Error : the file is missing";

    die();

}


/* Checking upload errors */

if($_FILES['articleImage']['error'] != UPLOAD_ERR_OK) {

    echo "Error : ".$_FILES['articleImage']['error'];

    die();

}


/* Checking file size */

if($_FILES['articleImage']['size'] == 0) {

    echo "Error : the file is empty";

    die();

}


/* Checking file has been uploaded to tmp */

if(is_uploaded_file($_FILES['articleImage']['tmp_name'])) {

    echo "Error : the file didn't upload";

    die();

}


/* Checking file doesn't already exist */

$imagePath = "img/articles/".$_FILES['articleImage']['name'];

if(file_exists($imagePath)) {

    echo "Error : the filename is already taken";

    die();

}


/* Writing image */

if(!move_uploaded_file($_FILES['articleImage']['tmp_name'], $imagePath)) {

    echo "Error : the file coundn't be written";

    die();

}


echo 'Success';

die();


?>

请求已正确发送:



-----------------------------45933353531894573431775954628

Content-Disposition: form-data; name="articleImage"; filename="my_file.png"

Content-Type: image/png


[image content]


-----------------------------45933353531894573431775954628--


但我仍然收到“文件未上传”的消息错误...


正如我之前提到的,我确实检查了我的 php conf(使用 /tmp 作为 upload_tmp_dir 编辑了正确的 php.ini 文件并将上传限制设置为 100M),并且 /tmp 上有 777 chmod。


我缺少什么?


慕田峪9158850
浏览 125回答 1
1回答

噜噜哒

我已经复制并以某种方式测试了您的代码。您不需要执行 is_uploaded_file 调用,因为这些检查是在 move_uploaded_file 函数中进行的(https://www.php.net/manual/en/function.is-uploaded- file.php#113766)。另请检查存储图像的目录是否存在。<?php/* Directory where uploaded images will be placed */$imageDir = 'img/articles';/* Checking request parameters */if (!isset($_FILES['articleImage']) || empty($_FILES['articleImage'])) {&nbsp; &nbsp; echo "Error : the file is missing";&nbsp; &nbsp; die();}/* Checking upload errors */if ($_FILES['articleImage']['error'] != UPLOAD_ERR_OK) {&nbsp; &nbsp; echo "Error : " . $_FILES['articleImage']['error'];&nbsp; &nbsp; die();}/* Checking file size */if ($_FILES['articleImage']['size'] == 0) {&nbsp; &nbsp; echo "Error : the file is empty";&nbsp; &nbsp; die();}/* Checking if directory exists */if (!is_dir($imageDir)) {&nbsp; &nbsp; echo 'Image directory does not exist';&nbsp; &nbsp; die();}/* Checking file doesn't already exist */$imagePath = $imageDir . $_FILES['articleImage']['name'];if (file_exists($imagePath)) {&nbsp; &nbsp; echo "Error : the filename is already taken";&nbsp; &nbsp; die();}/* Writing image */if (!move_uploaded_file($_FILES['articleImage']['tmp_name'], $imagePath)) {&nbsp; &nbsp; echo "Error : the file coundn't be written";&nbsp; &nbsp; die();}echo 'Success';die();
随时随地看视频慕课网APP
我要回答