用PHP将文件从web上载到服务器

用PHP将文件从web上载到服务器,php,file-upload,curl,Php,File Upload,Curl,我有一个php代码,可以将我的照片上传到服务器。该代码对本地文件运行良好,但对来自Web的文件不起作用。下面是我上传本地文件的代码 <?php $filepath="@/home/path/to/my/file.png"; $serverurl ="https://cxdetails.com/upload.php"; $ch=curl_init(); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($c

我有一个php代码,可以将我的照片上传到服务器。该代码对本地文件运行良好,但对来自Web的文件不起作用。下面是我上传本地文件的代码

<?php

    $filepath="@/home/path/to/my/file.png";
    $serverurl ="https://cxdetails.com/upload.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_URL, $serverurl);
    curl_setopt($ch,CURLOPT_POST,true);
    $post=array("file"=>$filepath);
    curl_setopt($ch,CURLOPT_POSTFIELDS,$post);
    $response=curl_exec($ch);
    echo $response;

?>

但是,如果我将$filepath更改为“”,它将不起作用。我不知道这为什么不起作用。请帮我解决这个问题

提前感谢。

您可以尝试更换:

curl_setopt($ch,CURLOPT_POSTFIELDS,$post);
致:


为什么这会有帮助,
CURLOPT_POSTFIELDS
可以接受一个对@Dmitry没有帮助的数组参数。我只是不明白这里的区别是什么,为什么它不从web获取文件?我遗漏了什么吗?通过添加http\u build\u query CURL set标题“Content type:multipart/form data”。此外,您还可以尝试手动添加此标头,如:curl_setopt($ch,CURLOPT_HTTPHEADER,array(“内容类型:多部分/表单数据”);你确定在上传文件到之前,curl是否支持从web“下载”。我不确定curl是否支持下载,是否有解决方法?
curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($post));