找回密码
 立即注册
搜索
查看: 4324|回复: 4

求助,怎么用curl上传文件同时post中文字符串?

[复制链接]
发表于 2008-4-10 00:51 | 显示全部楼层 |阅读模式
-F/--form好像不能接受中文
用-d/--data可以,但不能上传文件
可惜-d和-F不能混用
有办法在上传文件的同时发送中文么?
比如这个
<form method=\"post\" action=\"memcp.php?action=profile\" enctype=\"multipart/form-data\">
<input type=\"text\" name=\"nicknamenew\">
<input type=\"file\" name=\"customavatar\">
</form>
如果用-F "nicknamenew=昵称",结果是空白
如果手工给昵称urlencode,用-F "nicknamenew=%E6%98%B5%E7%A7%B0",结果就直接是%E6%98%B5%E7%A7%B0

用-d/--data的话,-d "nicknamenew=%E6%98%B5%E7%A7%B0"就行了,不过没法上传文件

我糊涂了,求指点迷津
回复

使用道具 举报

发表于 2008-4-10 13:56 | 显示全部楼层
到curl邮件列表上问吧.
回复

使用道具 举报

发表于 2008-4-10 14:12 | 显示全部楼层
看了一下手册http://curl.haxx.se/docs/manpage.html
--data-urlencode选项可能是你想要的.
回复

使用道具 举报

 楼主| 发表于 2008-4-11 00:26 | 显示全部楼层
别笑话,咱土鳖,还没用过邮件组呢[m]023[/m]

--data-urlencode和--data类似,都是对应application/x-www-form-urlencoded,不能用来上传文件
--form是对应multipart/form-data,可以用来上传文件
-F/--form <name=content>
(HTTP) This lets curl emulate a filled in form in which a user has pressed the submit button. This causes curl to POST data using the Content-Type multipart/form-data according to RFC1867.

看了下RFC1867,好像默认接受7bit的encoding,non-ascii字符需要修改Content-Transfer-Encoding
这些rfc规范咱也没接触过。。。
怎么在curl里面实现完全没有头绪
回复

使用道具 举报

 楼主| 发表于 2008-4-11 20:26 | 显示全部楼层
暂时解决了。。。
用-F \"nicknamenew=<nickname.txt\"
文本用对应编码,比如utf-8保存在nickname.txt
可惜本想完全用命令行搞定的,这下还需要多建几个临时文件
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-7-21 09:18 , Processed in 0.062577 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表