使用curl将目录从目录上传到外部站点

时间:2013-03-02 17:32:38

标签: php curl

好的,我想知道是否可以使用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

1 个答案:

答案 0 :(得分: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开发的,但它仍然处于测试模式,_VIRUS_SCAN_URL和@ api PROTOCAL。

只需从服务器获取文档即可扫描它,如果是非病毒,则将其发送到上传服务器。