Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用curl将图像从目录上载到外部站点_Php_Curl - Fatal编程技术网

Php 使用curl将图像从目录上载到外部站点

Php 使用curl将图像从目录上载到外部站点,php,curl,Php,Curl,好的,我想知道是否可以使用curl并从我的站点目录上传一个图像,而不是从我的机器上, 我需要做的就是从我的图片目录上传一张图片,使用表单中的文件选择,如果有人知道我需要在代码中编辑什么,我将不胜感激,我已经在网上查看了,但在搜索中没有发现任何内容,我想我需要文件获取内容base64编码,然后发布我的想法对吗 $upload_url = 'http://example.com/settings/upload-img'; $file_path = 'directory/image.png'; $fi

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


<?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);
?>
似乎很多人都想知道什么是病毒扫描URL

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

这项服务是由开发的,但它仍然处于beta模式和_VIRUS_SCAN_URL和@thereapi协议


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

使用浏览器执行一次上载,并转储网络流量。然后用你的方法做同样的事情。您可以看到差异,这将更正您的代码。@Vineet1982:OP尝试http上载,而不是ftp。ftp协议来自80年代。如果存在其他可能性,则不应再使用它。如果upload-pic.php是您的页面,我认为创建另一个处理这种上传的php端点会更容易。在本例中,只需将基数64放入变量中,然后从另一侧将其拉出。你可能需要不同的自动化流程规则。我想这可以通过curl来实现。我有这个想法,但必须尝试一下,让你知道,就像我在标题中说的,它在一个外部网站上,我不拥有。那“病毒扫描URL”是什么意思?!?而
@
在文件路径中做了什么?只需执行curl和@pointer的内置函数即可指向文件,或者说temp link对不起,这是不可能理解的,换言之,您可以再试一次吗?那个“病毒扫描URL”呢?如果与curl的行为有关,是否有关于该
@
的文档?好的,请澄清:文件路径前面的
@
使curl扩展名不使用指定的字符串(路径)作为值,而是实际使用文件内容。关于那个奇怪的“病毒防护”——不知道这意味着什么……这是一个很好的例子,为什么一个人不应该简单地复制别人发布的东西。先问问它做什么。了解它的作用。在这种情况下(由于这只是一种声明,所以这是不恰当的),该选项将文件分发给某个外部“服务提供商”。这肯定不是大多数人想要的,因为没有人知道“服务提供商”对文件做了什么。