首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

怎么用indy10 上传文件

2012-03-21 
如何用indy10 上传文件想利用http上传文件,本地一个txt,服务器目录是192.168.1.6/ww/ss,找了很多都是ftp的

如何用indy10 上传文件
想利用http上传文件,本地一个txt,服务器目录是192.168.1.6/ww/ss,找了很多都是ftp的,跪求答案,小弟分不多了,就剩这么点了

[解决办法]
一定要Indy的吗?
CB目录下有FastNet的http的例子
Borland\CBuilder6\Examples\FastNet\HTTP
[解决办法]

C/C++ code
TIdMultiPartFormDataStream *MultiPartFormData=new TIdMultiPartFormDataStream(); MultiPartFormData->AddFormField("upcount","1"); MultiPartFormData->AddFormField("filepath","/download"); MultiPartFormData->AddFile("file1",E->Text,"multipart/form-data"); MultiPartFormData->Position = 0; HTTP->Request->Referer="http://192.168.1.6/ww/ss/upfile.htm"; HTTP->Request->AcceptLanguage="zh-cn"; HTTP->Request->ContentType="multipart/form-data"; HTTP->Request->Connection="Keep-Alive"; TStringStream* stream=new TStringStream(""); try   {    HTTP->Post("http://192.168.1.6/ww/ss/upfile.asp",MultiPartFormData,stream);   } __finally   {    M->Text=stream->DataString;    delete MultiPartFormData;MultiPartFormData=NULL;    delete stream;stream=NULL;   }
[解决办法]
http协议其实很简单。自己用socket写一个就可以。
POST数据的时候注意下http头里的
Content-Type 和 Content-Length 其他域照搬浏览器的就可以
Content-Type 应该为 multipart/form-data; boundary=---------------------------xxxxxxxxxxxx
Content-Length 是POST 数据的长度

下面是一个比较简单的上传文件的数据包内容
POST /upload.php HTTP/1.1
Host: zmz.test
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 3.5.21022)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://zmz.test/upload.html
Content-Type: multipart/form-data; boundary=---------------------------41184676334
Content-Length: 488

-----------------------------41184676334
Content-Disposition: form-data; name="file[]"; filename="upload_File1.txt"
Content-Type: application/octet-stream

1111


-----------------------------41184676334--

////////////////////
http头以\r\n\r\n结尾
边界41184676334 是个随机数
Content-Length 是http后面所有数据的长度。

热点排行