papapa314 发表于 2011-7-28 18:32:04

post上传文件-如何将非文本文件读取为数据流

本帖最后由 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)

papapa314 发表于 2011-7-29 00:55:08

各位没有好的办法吗?

happytc 发表于 2011-7-29 02:11:02

回复 1# papapa314


   
我帮你测试了,那个服上的不管是日期还是文件大小,都是乱显示的。
就是你直接用IE上传,也是错误的文件大小

papapa314 发表于 2011-7-29 11:20:54

回复 3# happytc

不会的哦,我上传文件后都可以看到我上传的文件名,文件大小也是一致的,虽然网页上没有按顺序显示。
我用filewrite("1.txt",$text)也发现文件大小比原来的jpg文件大了一倍。
问题还是出在无法将图片读取为数据流。

papapa314 发表于 2011-7-29 13:40:32

回复 3# happytc

搞定了哈哈,原来要把所有文本转成二进制再和jpg的数据一起发送,这回发送过去的文件大小一致了。多谢republican的提醒。

dyd 发表于 2011-8-4 13:11:56

学习学习!!!!!!!!!!
页: [1]
查看完整版本: post上传文件-如何将非文本文件读取为数据流