0

我有一些关于 cURL 的基本问题,我无法在 cURL 文档中找到答案(可能是因为它们对其他人来说很明显......)。我有一个文件类型输入,需要将该文件发送到远程服务器。cURL 代码是随表单一起出现在页面上,还是表单发送给您的页面上的 cURL 然后被发送到远程服务器?

这是html表单:

<form action="send.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>

到目前为止我所拥有的 cURL php,我什至不知道它是否适合我正在尝试做的事情,或者这是否在同一页面上或表单转到的 send.php 文件上:

$ch = curl_init("http://remoteServer/upload_file.php"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CUROPT_POSTFIELDS, array('fileupload' => '@'.$_FILES['theFile']      ['tmp_name'])); 
echo curl_exec($ch);`

在远程服务器上,我有这个文件来接收它:

$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!";
}

这甚至距离很近吗?

4

2 回答 2

0

您不需要 curl 从浏览器上传文件,您可以将表单直接提交到远程服务器进行上传 - 只需确保表单提交到具有第三个代码块的任何文件

于 2012-09-02T07:48:45.453 回答
0

试试这个

$curlPost = array('fileupload' => '@'.$_FILES['theFile'] ['tmp_name']);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://remoteServer/upload_file.php');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec();
curl_close($ch);

另一个例子

如何使用 PHP cURL 将图像文件上传到远程服务器

http://www.maheshchari.com/upload-image-file-to-remote-server-with-php-curl/

于 2012-09-02T10:05:52.500 回答