【问题标题】:Image upload using curl使用 curl 上传图片
【发布时间】:2016-04-02 06:17:17
【问题描述】:

我想使用 curl cli 版本将图像上传到远程站点,我在这里浏览了几个页面,但无法解决我的问题。 我在上传图片时在 Firefox 中记录 http 标头:

https://www.site.xxx/upload_profile_picture/

POST /upload_profile_picture/ HTTP/1.1
Host: www.site.xxx
User-Agent: Mozilla/5.0 (Linux; U; Android 4.0.3; ko-kr; LG-L160L Build/IML74K) AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Accept: */*
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip, deflate
X-Requested-With: XMLHttpRequest
Content-Type: multipart/form-data; boundary=---------------------------124439777612656977621176581961
Cookie: 123
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache


BELOW IS POSTDATA:::
-----------------------------124439777612656977621176581961
Content-Disposition: form-data; name="profile_pic"; filename="7eddaf78bbd055460167bae9eee3cdea.jpg"
Content-Type: image/jpeg

ÿØÿà

【问题讨论】:

    标签: linux image bash curl upload


    【解决方案1】:

    基本的curlsyntax 是

    curl \ -F "image=@/yourPath/yourImageFile.jpg" \ 'https://www.site.xxx/upload_profile_picture/'

    如有必要,使用一个或多个额外的-F 选项指定其他 POST 数据字段,如-F "username=xxx"

    【讨论】:

    • 嗨@Guido,你能详细说明一下吗...我试过curl -i -X POST -H Header1 -H Header2 ........ -F "image=@/home/user/Desktop/1.jpg" -F "name=profile_pic" -F "filename=1.jpg" https://www.site.xxx/upload_profile_picture/不工作
    • @TonyStark curl 返回的错误信息/响应是什么?
    • {"status":"ok","changed_profile":"false"} 但头像未更改
    • @TonyStark 图片上传似乎成功了,但缺少其他一些数据字段。您确定要传递服务器所需的所有表单变量(用户名、隐藏变量、上传页面中的任何内容)吗?
    • @TonyStark 让我印象深刻的两件事:(1) curl 计算并发送它自己的“Content-Length”标头,因此您的命令行中的 -H 字段不是必需的,应该被移除。 (2) 您的 cookie 规范可能不正确。尝试将 cookie 传递为 -b "cookieName=cookieValue"instead。
    【解决方案2】:

    或者您可以使用 Chrome,它将在检查器中为您构建 cURL 命令:

    【讨论】:

    • 通过使用 chrome 方法我得到了HTTP/1.1 408 REQUEST TIMEOUT
    猜你喜欢
    • 2013-01-29
    • 1970-01-01
    • 2011-11-14
    • 2016-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多