如何上传到单独的文件服务器使用php


How upload to separate fileserver using php?

我正在开发的应用程序允许用户为他们的个人资料上传头像。由于应用程序使用两个独立的前端web服务器,我们打算使用一个单独的文件服务器来存储图像文件。我使用的代码成功地将文件上传到web服务器中的一个目录。成功地将文件放到文件服务器上的最佳方法是什么?它使用了一个名为'class.upload.php'的上传代码,我在这里找到了https://www.verot.net/php_class_upload.htm

代码如下:

require_once('class.upload.php');
$foo = new Upload($_FILES['fileToUpload']); 
if ($foo->uploaded) {
   // save uploaded image with a new name,
   // convert to .jpg
   // resized to 50px by 50px
   $foo->file_new_name_body = $tablename;
   $foo->file_auto_rename = true;
   $foo->image_convert = jpg;
   $foo->image_resize = true;
   $foo->image_ratio_crop = true;
   $foo->image_y = 50;
   $foo->image_x = 50;
   //THIS LINE CURRENTLY SPECIFIES UPLOAD PATH ON WEBSERVER
   $foo->Process('avatars/');   
  // THE LINE BELOW IS WHAT I TRIED AND GOT A 'Can't create file path' ERROR
  //$foo->Process('http://XXX.XXX.XXX.XXX/PATH/TO/avatars/');

   if ($foo->processed) {
     //echo 'image renamed, resized x=100 and converted to JPG';
     $foo->Clean();
     ...then goes on with upload processing since upload is successful.    
   }    
} 

其中XXX.XXX.XXX.XXX为文件服务器的IP。

提前感谢你的帮助。如果有什么我可以做得更好的问题,请让我知道。谢谢!

该脚本用于保存到本地文件系统。您需要www-data用户(或运行安装程序的任何用户)可以将文件写入的地方。

设置一个只上传图像的表单,并将操作设置为文件服务器上的脚本。这样用户就可以直接上传了。

您需要将文件保存在本地,然后通过某种方式将其保存到文件服务器。公开文件系统导出可能有效(如果您在www服务器和文件服务器之间有专用网络),或者您需要以某种方式将它们发送到那里。您可以在PHP中使用curl通过ftp传输图像,您可以使用无密码的ssh密钥并生成一个shell脚本,对文件服务器执行scp操作,您可以通过ssh经常使用rsync进行同步。很多选项