找回密码
 加入
搜索
查看: 7785|回复: 5

[系统综合] post上传文件-如何将非文本文件读取为数据流

[复制链接]
发表于 2011-7-28 18:32:04 | 显示全部楼层 |阅读模式
本帖最后由 papapa314 于 2011-7-28 20:09 编辑

看了易语言的文件上传教程,发现易语言里有个数据类型字节集,能够保存任何格式的文件,但au3没有这个数据类型,请问有什么方式代替吗?

目前我按照如下的代码上传文件后,发现文件大小大了一倍,问题应该出在以下这三句代码:

$file=FileOpen("F:\xd314.jpg",16)

$text&=FileRead($file)&@CRLF

FileClose($file)

这里只是将将文件读取为二进制(字节),而服务器无法将这个再转换为原始格式。

望各位帮忙解决这个问题,先行谢过。


$oHTTP = ObjCreate("microsoft.xmlhttp")

$oHTTP.Open("post","http://219.159.198.136:8000/jsjjc/upload.asp",false)

$oHTTP.setRequestHeader("Accept-Language", "zh-cn")

$oHTTP.setRequestHeader("Content-Type","multipart/form-data")  

$oHTTP.setRequestHeader("Referer","http://219.159.198.136:8000/jsjjc/upload.asp?action=UploadFiles")

$text='-----------------------------7db15728160758'&@CRLF
$text&='Content-Disposition: form-data; name="upfile"; filename="F:\xd314.jpg"'&@CRLF
$text&='Content-Type: image/pjpeg'&@CRLF&@CRLF

$file=FileOpen("F:\xd314.jpg",16)

$text&=FileRead($file)&@CRLF

FileClose($file)

$text&='-----------------------------7db15728160758--'&@CRLF&@CRLF

$oHTTP.send($text)

MsgBox(0,0,$oHTTP.responsetext)

评分

参与人数 1金钱 +30 收起 理由
星雨朝霞 + 30 从你的帖子我也领悟到了POST上传图片的方法 ...

查看全部评分

 楼主| 发表于 2011-7-29 00:55:08 | 显示全部楼层
各位没有好的办法吗?
发表于 2011-7-29 02:11:02 | 显示全部楼层
回复 1# papapa314


   
我帮你测试了,那个服上的不管是日期还是文件大小,都是乱显示的。
就是你直接用IE上传,也是错误的文件大小
 楼主| 发表于 2011-7-29 11:20:54 | 显示全部楼层
回复 3# happytc

不会的哦,我上传文件后都可以看到我上传的文件名,文件大小也是一致的,虽然网页上没有按顺序显示。
我用filewrite("1.txt",$text)也发现文件大小比原来的jpg文件大了一倍。
问题还是出在无法将图片读取为数据流。
 楼主| 发表于 2011-7-29 13:40:32 | 显示全部楼层
回复 3# happytc

搞定了哈哈,原来要把所有文本转成二进制再和jpg的数据一起发送,这回发送过去的文件大小一致了。多谢republican的提醒。
发表于 2011-8-4 13:11:56 | 显示全部楼层
学习学习!!!!!!!!!!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 08:10 , Processed in 0.074766 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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