通过PHP实现远程服务器文件上传

9
我有两台服务器,一台用于我的网站,另一台用于存储。我想要一个页面,让用户可以将文件上传到存储服务器上。我希望使用表单提交来实现。我编写了一小段非常简单的代码来进行故障排除,但是遇到了一些问题。如果我将操作改为在同一服务器上保存的.php,则它能很好地工作,但当我将其更改为我的存储服务器时,上传失败并显示“else”回显,提示上传失败。

我的Web服务器上的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文件在html文件夹中的“files”文件夹内。

您有没有看到任何导致文件无法传输到服务器的原因?

1个回答

5

这个主题回答了你的问题

如建议的那样,您可以使用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
也许你可以在上传的服务器上处理该请求? - Sarah Lasonia
如果我必须要使用cURL,那也没关系,我只是想不用它来完成。现在我已经稍微了解了一些相关内容,那么我该如何实现你给出的代码呢?您是否仍然会使用表单操作来访问存储服务器上的PHP页面? - Milksnake12
@Milksnake12 这段代码的作用只是将数据发布到存储服务器上的一个 PHP 脚本。这段代码不是我写的,所以你需要参考开头的超链接查看原始线程。 - Sarah Lasonia
1
@SarahLasonia 需要关闭数组,$_FILES['theFile'] - 你需要添加 **]**。 - Alex
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接