使用常规HTML表单,我可以将图片上传到网址,然后上传并返回。但是当我在PHP中这样做时
$bytes = download_attachment($timeline_item_id, $attachment);
$image = imagecreatefromstring($bytes);
imagejpeg($image, 'tempfile.jpg');
$files[] = '@tempfile.jpg;filename=tempfile.jpg;type=image/jpeg';
$post = array('authenticationToken' => 'AUTH_TOKEN','media-content'=>@"tempfile.jpg");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://api-ssl-5.tenthbit.com/send/media");
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$result=curl_exec ($ch);
curl_close ($ch);
它不起作用....任何想法?我不确定imagecreatefromstring是对的。但是它创建了一个带有有效图像的tempfile.jpg文件。$ result是“true”而不是来自FORM的JSON响应
ref的表格:
<form action="https://api-ssl-5.tenthbit.com/send/media" method="post"
enctype="multipart/form-data">
<input type="text" name="authenticationToken" id="file" value="AUTH">
<input type="file" name="media-content" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
答案 0 :(得分:0)
你的方法很好。但你没有提到你得到的错误。
我假设你使用的是旧的PHP版本,它不再支持'@ImageName'了。 如果您使用的是PHP 5.5.9版。另外,我假设图像路径是正确的。所以你可以从下面的代码块中获取帮助。
$headers = array("Content-Type:multipart/form-data");
$file = new CurlFile('image_path', 'mime_type', 'image_name');
$post = array('authenticationToken' => 'AUTH_TOKEN','file_array'=>$file);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"https://api-ssl-5.tenthbit.com/send/media");
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_INFILESIZE, $filesize);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec ($ch);
curl_close ($ch);