【问题标题】:http file upload using cURL in linux(command line)在 linux 中使用 cURL 上传 http 文件(命令行)
【发布时间】:2014-11-04 12:47:49
【问题描述】:

我必须在 linux 命令行中使用 CURL HTTP POST 将文件上传到本地系统。

我已经使用了这些命令,但没有成功:

curl -F "image=@/var/www/fbapp/images/registration.png" http://localhost/xmlcreate/curlupload.php

curl --form "fileupload=@/var/www/fbapp/images/registration.png" http://localhost/xmlcreate/curlupload.php

curl -X POST -d @/var/www/fbapp/images/registration.png http://localhost/xmlcreate/curlupload.php

curl --data-binary @/var/www/fbapp/images/registration.png http://localhost/xmlcreate/curlupload.php

我使用了所有这些命令,但没有一个起作用。

这是我的 PHP 文件,我正在尝试获取上传的文件(使用 curl)并将其保存在其他目录中:

<?php
$uploadpath = "images/";
$filedata = $_FILES['image']['tmp_name'];
$filename = $_POST['filename'];
if ($filedata != '' && $filename != '')
    copy($filedata,$uploadpath.$filename);
?>

有人可以帮我解决这个问题吗?我被困在这里无法前进。

一旦它开始在本地运行,我必须使用远程服务器 URL,而不是本地主机。

【问题讨论】:

    标签: php linux http curl


    【解决方案1】:

    试试

    curl -i -F filename=image.jpg -F image=@/path/to/image.jpg http://localhost/xmlcreate/curlupload.php
    

    【讨论】:

    • 我得到了这个作为输出:HTTP/1.1 100 Continue HTTP/1.1 200 OK 日期:星期二,2014 年 11 月 4 日 13:01:49 GMT 服务器:Apache/2.2.22 (Ubuntu) X-Powered -By:PHP/5.3.10-1ubuntu3.13 变化:Accept-Encoding 内容长度:0 内容类型:text/html
    • 文件上传了吗?由于您的脚本没有输出任何内容,因此很难说它是否有效!
    • 我对连接到同一网络的服务器进行了同样的尝试。但它没有将其上传到该服务器。我还应该做什么?
    【解决方案2】:

    尝试使用

    move_uploaded_file()
    

    我认为至少有一个 CURL 命令有效。要检查,只需输入如下内容:

    file_put_contents('log.txt',print_r($_FILES,true));
    

    在您的代码中并实时检查您从 curl 中获得的信息。

    【讨论】:

      猜你喜欢
      • 2015-01-02
      • 1970-01-01
      • 2014-08-24
      • 2023-03-29
      • 2016-11-26
      • 2017-07-07
      • 2017-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多