我有一些关于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!";
}
这甚至是近距离接近吗?
答案 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/