【问题标题】:File Upload and Save on another Server PHP文件上传并保存到另一台服务器 PHP
【发布时间】:2018-04-12 03:36:59
【问题描述】:

我目前在一台服务器(服务器 A)上使用表单收集和上传图像,我想将其存储在另一台服务器(服务器 B)上。从我看到的示例中,我需要保存文件,然后使用 copy 或 curl 复制它。

我想获取我在服务器 A 上接收到的文件并将其发送到服务器 B,而不实际将文件保存在服务器 A 上。我有办法做到这一点吗? 我尝试将文件转换为 dataURI 字符串并以这种方式发送,但是我认为字符串太长并且我收到了错误。 提前感谢您的帮助!

更新 我找到了我的解决方案爱好者! 该文件在上传时存储在临时存储中。 您不能仅使用文件名将文件保存在不同的服务器上,但您可以使用该信息创建一个 CurlFile,然后可以将其传递到要创建的另一台服务器上的页面(参见 Shivani Patel 对@的回复987654321@)。这与来自http://blog.derakkilgo.com/2009/06/07/send-a-file-via-post-with-curl-and-php/ 的信息相结合,我的代码开始工作了。

如果合适,请标记为重复。在建议之前我没想过要查看临时文件名:)

【问题讨论】:

  • 那么不需要考虑服务器A,直接上传服务器B ... :) ...确保您的B服务器必须接受上传。
  • 该文件可能已存储在临时位置。大多数 PHP 文件操作函数可以直接接受文件,而不仅仅是文件路径。您可能想在这里查看:php.net/manual/en/features.file-upload.post-method.php
  • @seanvalencourt -- 谢谢你的评论!真的帮助我朝着正确的方向前进。如果您想添加作为答案,我会接受:)
  • @MinarMnr - 我期待有人这么说!仍然需要服务器 A 来处理表单的其余部分。我将文件发送到服务器 B 以检查和存储,但不确定如何在不先保存文件的情况下发送文件。感谢您抽出宝贵时间回复。

标签: php file-upload


【解决方案1】:

你可以使用ftp_put()函数如下

// information of second server
$ftp_server = "ftp.example.com";
// name file in serverA that you want to store file in serverB
$file = 'somefile.png';
$remote_file = 'serverB_file.png';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// upload a file
if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
 echo "successfully uploaded $file\n";
} else {
 echo "There was a problem while uploading $file\n";
}

我也做过同样的事情..首先我在服务器A中移动上传的文件,然后在服务器B中传输,完成传输后取消链接服务器A中的文件。

【讨论】:

  • 让我知道是否符合您的问题。如果您觉得有帮助,请采纳为正确答案
  • 感谢您抽出宝贵时间回复@Veshraj Joshi。对此,我真的非常感激。我认为这样,我仍然需要保存文件——我想避免这种情况。这是一个很棒的答案,不是我想的。再次感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-05
  • 2012-09-23
相关资源
最近更新 更多