如何更改我存储文件的路径

How to change the path where I store my files

目前我将 PDF 文件保存在位于 PHP 项目根目录的文件夹中,但在这种情况下,我需要将此位置更改为位于另一台服务器上的文件夹我正在 运行 我的项目。

我分配当前文件存放路径的方式如下:

if($res['pdf']) {
          $file = $_FILES["pdfToUpload"]["name"];
          $path ="PDF/";

          if(!move_uploaded_file($_FILES["pdfToUpload"]["tmp_name"], $path . $file)) {
             
              $res['pdf'] = false;
          }          
      }

在变量 I path 中只存储在我的项目根目录中找到的文件夹的位置。

我要访问的其他服务器上存放文件的路径如下:

/SRVNAME/E:/newfolder/project/PDF/

我澄清一下,在之前的路径中,我必须访问一个不同的单元,即 E: 而这个路径我尝试添加服务器的名称,但没有成功。

尝试将相同的位置分配给变量 path 但文件未存储。

我真的不知道文件是否可以存储在与项目不同的位置。

共享名称(文件路径)不会像那样。如果它是一个 Windows 服务器,它就是一个 UNC,它看起来更像这样 //SRVNAME/newfolder/project/PDF/

此外,网络服务器 运行 的用户需要 directory/share.

的适当权限

据我了解,您有两台不同的服务器,一台 运行 应用程序,另一台存储文件。为此,您需要在需要上传文件的服务器中有一个文件上传脚本。从应用程序服务器,您使用 PHP CURL 编写脚本来发送文件。

为了您的参考,我发布了您需要在应用程序脚本中执行的 CURL 操作。

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, SECOND_SERVER_PATH);
curl_setopt($ch, CURLOPT_POSTFIELDS, $file); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60000);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_REFERER, $_SERVER['HTTP_HOST']);

更多信息可以参考Shivani的回答

我无法对此进行测试,但似乎 realpath("/SRVNAME/E:/newfolder/project/PDF/"); 会为您提供该文件夹的绝对系统路径。