curl发送文件 post图片的两种方式

  • First Type:

    curl
    -F "pic=@/mnt/shared/Image/jpg/Screensho1t.jpg; filename='Screensho1t.jpg'"
    http://127.0.0.1:8080/picture

    -F 指定data的参数,
    "pic=@/mnt/shared/Image/jpg/Screensho1t.jpg; filename='Screensho1t.jpg'"
    类似于html中
    <input type="file" name="pic" />
    <input type="text" name="filename" />

    -H指定上传数据的头信息

    最后一个参数指定地址

    多图上传:
    curl
    -F "pic=@/mnt/shared/Image/jpg/1.jpg; filename='1.jpg'"
    -F "pic=@/mnt/shared/Image/jpg/2.jpg; filename='2.jpg'"
    http://127.0.0.1:8080/picture

    带头信息上传:
    curl
    -F "pic=@/mnt/shared/Image/jpg/1.jpg; filename='1.jpg'"
    -H "Content-filename:1.jpg"
    http://127.0.0.1:8080/picture

参考文章:
使用cURL POST上传文件

CURL模拟表单post提交及相关常用参数的使用(包括提交表单同时上传文件

  • Second Type:
    手写curl文件上传:

    使用curl 上传文件,multipart/form-data

    1. 不使用-F,curl内置multipart/form-data功能;

    2. 文件内容与真实数据无关,用abc代替数据,依然可以上传成功,这里是文件的二进制内容;

    3. name 为服务端获取文件的字段;

    4. 换行和—的数量需要一致;

    5. -H指定头部信息,上传文件时在头部的Content-Type指定格式和分隔符;

    6. boundary参数为内容分割,“-”的数量比后面数据里面少2;

    7. –data 指定post的数据信息,图片内容在data内;
    8. 需要注意在data最后还有两个“–”。
curl -H "Content-Type: multipart/form-data; boundary=----------WebKitFormBoundarykwAk3YkABYxtSoqv" --data "
------------WebKitFormBoundarykwAk3YkABYxtSoqv
Content-Disposition: form-data; name="file"; filename="selfi.jpg"
Content-Type: image/png

abc
------------WebKitFormBoundarykwAk3YkABYxtSoqv--
" http://127.0.0.1:8080/picture

下面给一个shell,不过没有成功,有能力的可以看看:

total=$(cat /mnt/shared/Image/1.jpg)
curl -H "Content-Type: multipart/form-data; boundary=----------WebKitFormBoundarykwAk3YkABYxtSoqv" --data '
------------WebKitFormBoundarykwAk3YkABYxtSoqv
Content-Disposition: form-data; name="pic"; filename="1.jpg"
Content-Type: image/jpeg

'"$total"'
------------WebKitFormBoundarykwAk3YkABYxtSoqv--
' http://127.0.0.1:8080/picture

参考文章:
使用curl 上传文件,multipart/form-data

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值