PHP移动文件在本地主机上工作,但不在服务器上

9fkzdhlc  于 2023-11-16  发布在  PHP
关注(0)|答案(1)|浏览(115)

这些代码在本地运行顺利,但当我将它们发送到主机时无法工作。我给文件夹权限为777,但我仍然无法解决它。它给出6作为错误代码。此代码意味着没有临时文件夹,所以我在主机上创建了另一个名为temp的文件夹,但它仍然没有解决。有人可以帮助我吗?
在这里,应用程序给出了一个错误,并给出错误“上传图像时发生错误”

!move_uploaded_file($_FILES["img"]["tmp_name"], $imagePath)

字符串
所有代码

$targetFolder = 'uploads/';
  $imagePath = '';

  if (!empty($_FILES["img"]["name"])) {
      $imageName = uniqid() . '_' . $_FILES["img"]["name"];
      $imagePath = $targetFolder . $imageName;

      if (!move_uploaded_file($_FILES["img"]["tmp_name"], $imagePath)) {
          $response = array(
            'status' => 'error',
            'message' => 'An error occurred while uploading the image: ' . $_FILES["img"]["error"]
          );
          header('Content-Type: application/json');
          echo json_encode($response);
          exit; // Terminate the process if the image fails to upload
      }
  }


我只是在学习编程,我知道的不多。我的服务器上没有php.ini文件,这可能是为什么我得到错误?
所有的代码都在我的localhost上运行。我使用wampserver在localhost上运行。
但当我上传到托管,我指定的代码不工作
我几乎所有的文件夹都设置为777权限。
移动文件的位置正确,没有错误。

s4chpxco

s4chpxco1#

$targetFolder改成这样:

$targetFolder = $_SERVER['DOCUMENT_ROOT'] . '/uploads/';

字符串
请注意,将文件上传到Web可访问的文件夹(例如/public_html/)并不是一个好的做法。大多数托管服务提供商都有类似于~/private/的东西。还可以检查您的phpinfo()/php. ini中的open_basedir。
请阅读How to securely upload files with PHP?
免责声明:我与PHP.earth没有任何关系;这个页面很好地总结了在PHP中处理上传时可能遇到的所有潜在陷阱。

相关问题