无法在php中使用上传文件逻辑

时间:2017-06-22 07:05:33

标签: php

我有一个PHP代码片段

<?php
$target_dir = "uploads/";
$target_file_name = $target_dir .basename($_FILES["file"]["name"]);
$response = array();

// Check if image file is a actual image or fake image
if (isset($_FILES["file"])) 
{
   if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file_name)) 
   {
     $success = true;
     $message = "Successfully Uploaded";
   }
   else 
   {
      $success = false;
      $message = "Error while uploading";
   }
}
else 
{
      $success = false;
      $message = "Required Field Missing";
}
$response["success"] = $success;
$response["message"] = $message;
echo json_encode($response);

?>

当我尝试使用Postman上传文件时出现错误

Warning: move_uploaded_file(uploads/Arshay.png): failed to open stream: No such file or directory in /home/my_domain/public_html/android_api/dum_cv.php on line 9

Warning: move_uploaded_file(): Unable to move '/tmp/phpFPW9sg' to 'uploads/Arshay.png' in /home/my_domain/public_html/android_api/dum_cv.php on line 9
{"success":false,"message":"Error while uploading"}

如何解决此问题

2 个答案:

答案 0 :(得分:0)

试试这个$target_file_name = $_SERVER['DOCUMENT_ROOT'].'/'.basename($_FILES["file"]["name"]);

答案 1 :(得分:0)

似乎$target_dir不存在。

在移动文件之前检查目标目录。

if (!is_dir($target_dir)) {
    if (!mkdir($target_dir, 0777, true)) {
        exit(json_encode(['success'=>false, 'message'=>'failed to create target directory']));
    }
}