PHP cURL设置发送到远程主机

时间:2012-09-02 07:27:49

标签: php forms curl

我有一些关于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!";
}

这甚至是近距离接近吗?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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/