1

好的,我想知道是否可以使用 curl 并从我的站点目录上传图像,而不是从我的机器上,我需要做的是使用表单中的文件选择从我的图像目录上传图像,如果有人知道我需要在我的代码中编辑什么我将不胜感激,我浏览了整个网络,但在我的搜索中一无所获,我在想我需要文件获取内容 base64 编码然后发布我的想法是否正确?

$upload_url = 'http://example.com/settings/upload-img';
$file_path = 'directory/image.png';
$fields = array(
   "MAX_FILE_SIZE" => "",
   "fileselect[]" => $file_path
);

foreach ($fields as $key => $val) {
   $post_data .= $key . '=' . $val . '&';
}

$chr = curl_init();
curl_setopt($chr, CURLOPT_URL, $upload_url);
curl_setopt($chr,CURLOPT_POST, count($fields));
curl_setopt($chr,CURLOPT_POSTFIELDS, rtrim($post_data, '&'));
curl_setopt($chr, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($chr);
curl_close($chr);

我对 base64_encode() 的图像的想法如下,我不确定我是否正确地认为这可能有效。

$raw_img = base64_encode(file_get_contents('directory/image.png'));

然后使用 "fileselect[]" => $raw_img

4

1 回答 1

0
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible;)");
curl_setopt($ch, CURLOPT_URL, _VIRUS_SCAN_URL);
curl_setopt($ch, CURLOPT_POST, true);
// same as <input type="file" name="file_box">
$post = array(
    "file_box"=>"@/path/to/myfile.jpg",
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); 
$response = curl_exec($ch);
?>

似乎很多人想知道什么是_VIRUS_SCAN_URL?

_VIRUS_SCAN_URL

它是针对开发人员的新主机病毒扫描。在内部将所有文件发送到病毒扫描模块以检查是否有病毒对服务器造成损坏。

服务由http://virusade.com开发,但仍处于 beta 模式和 _VIRUS_SCAN_URL 和@那里的 api PROTOCAL。

他们只需从服务器获取文档并对其进行扫描,如果没有病毒,则将其发送到上传服务器。

于 2013-03-02T17:50:21.747 回答