【发布时间】:2016-03-04 00:25:57
【问题描述】:
我想在 php 中使用 cURL 将图像上传到远程图像服务器。我有这段代码,它在网络服务器上:
<form enctype="multipart/form-data" encoding="multipart/form-data" method="post" action="webform.php">
<input name="somevar" type=hidden value='.$somevar.'>
<input name="uploadfile" type="file" value="choose">
<input type="submit" value="Upload">
</form>
和:
if (isset($_FILES['uploadfile']) ) {
$filename = $_FILES['uploadfile']['tmp_name'];
$handle = fopen($filename, "r");
$data = fread($handle, filesize($filename));
$POST_DATA = array(
'somevar' => $somevar,
'uploadfile' => $data
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://1.1.1.1/receiver.php');
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $POST_DATA);
$response = curl_exec($curl);
curl_close ($curl);
echo $response;
}
在图像服务器上,我有一个图像上传处理 php 文件,它在 localhost 上运行良好,但我想在远程服务器上使用它。这就是我在receiver.php中处理上传图片文件的方式:
move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)
我想直接把图片文件传给远程服务器脚本,这样我就不需要重写整个上传脚本了。我尝试将图像名称、类型、大小作为发布变量发布,但我没有得到 ['tmp_name'],因为它不在本地主机上。
我该如何解决这个问题?谢谢大家的帮助!
【问题讨论】:
标签: php curl remote-server