【问题标题】:Remote Server File Upload Via PHP通过 PHP 远程上传服务器文件
【发布时间】:2012-08-27 06:58:13
【问题描述】:

我有两台服务器,一台用于我的网站,另一台用于存储。我正在尝试有一个页面,有人可以将文件上传到存储服务器,我希望使用表单帖子将其发送到那里。我写了一段非常简单的代码来解决这个问题,但遇到了一些麻烦。如果我将操作更改为将其保存在同一服务器上的 .php,它工作正常,但是当我将其更改为我的存储服务器时,它无法上传并显示我未能上传的“其他”回声。

我的网络服务器上的 HTML:

<form action="http://storageServer/upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" /> 
<br />
<input type="submit" name="submit" value="Submit" />
</form>

我的存储服务器上的 PHP:

<?php
$folder = "files/";
$path = $folder . basename( $_FILES['file']['name']); 
if(move_uploaded_file($_FILES['file']['tmp_name'], $path)) {
echo "The file ".  basename( $_FILES['file']['name']). " has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
?>

.php 位于带有“files”文件夹的 html 文件夹中。

文件没有进入您可以看到的服务器的任何原因?

【问题讨论】:

    标签: php file post


    【解决方案1】:

    This topic answers your question

    按照建议,您可以使用 CURL:

    $ch = curl_init("http://www.remotepage.com/upload.php"); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, array('fileupload' => '@'.$_FILES['theFile']['tmp_name'])); 
    echo curl_exec($ch);
    

    【讨论】:

    • 我试图在没有 cURL 的情况下做到这一点。有没有可能是我的工作方式,还是我必须在混合中添加类似 cURL 的东西?
    • 也许你可以在你上传到的服务器上处理请求?
    • @Milksnake12 cURL 往往与大多数 PHP 安装一起打包。
    • @arxanas,他不愿意使用 cURL。
    • @SarahLasonia 需要关闭数组,$_FILES['theFile'] - 你需要添加 ]