使用IdMultipartFormData上传

Mit1208 2010-10-20 08:07:20
一个网站的post包参数是这样的

-----------------------------7d82ce3a290528
Content-Disposition: form-data; name="Title"

你好
-----------------------------7d82ce3a290528
Content-Disposition: form-data; name="ID"

1932
-----------------------------7d82ce3a290528
Content-Disposition: form-data; name="Content"

连接成功
-----------------------------7d82ce3a290528--



可是利用IDhttp上传的时候

字段的值如果是中文,就会显示???????,

如果是英文或者数字就没关系

不知道是哪里的事

我使用的是Delphi2010,请哪位朋友帮忙看一下,是哪里的问题
...全文
738 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mit1208 2010-10-24
  • 打赏
  • 举报
回复
10楼已搞定,谢谢其它朋友了
SQLDebug_Fan 2010-10-23
  • 打赏
  • 举报
回复
strTitle: AnsiString;
strTitle := '标题';
Multi.AddFormField('FIELD_Title',strTitle);
然后试试,
如果不行,试试把网页制定为UTF-16的编码试试。
Hexpate 2010-10-23
  • 打赏
  • 举报
回复
TIdMultiPartFormDataStream 里重载IDRead
修改AppendString函数的调用参数
加入最后一个参数TEncoding.Default
Mit1208 2010-10-23
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 likeyrain 的回复:]
AnsiString('标题')这样行不,没用过2010,如果行的话,那就是编码的问题啦
[/Quote]


:)谢谢回复,这个不行,我早试过了!嘿
likeyrain 2010-10-23
  • 打赏
  • 举报
回复
AnsiString('标题')这样行不,没用过2010,如果行的话,那就是编码的问题啦
Mit1208 2010-10-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sqldebug_fan 的回复:]
DELPHI 2010是Unicode,你把文本改为ANSI试试。
[/Quote]

怎么改变文本呢!我把代码附上,帮我修改一下吧,谢谢了!

下边的"标题"和"为什么"显示的是"????????"

英文和数字显示正常!


procedure TForm1.Button1Click(Sender: TObject);
var
str:string;
xxx:TStringStream;
Multi:TIdMultiPartFormDataStream;
begin
xxx:=TStringStream.Create;
Multi :=TIdMultiPartFormDataStream.Create;
Multi.AddFormField('FIELD_Title','标题');
Multi.AddFormField('FIELD_Q_SubjectID','14');
Multi.AddFormField('FIELD_Q_Type','1');
Multi.AddFormField('FIELD_Content','为什么123456ABCDE');
Multi.Position := 0;
xxx.LoadFromStream(Multi);
xxx.SaveToFile('1.txt');
Multi.Free;
xxx.Free;
end;
SQLDebug_Fan 2010-10-22
  • 打赏
  • 举报
回复
DELPHI 2010是Unicode,你把文本改为ANSI试试。
Mit1208 2010-10-21
  • 打赏
  • 举报
回复
重新测试了一下...
如果是D7的话,文字正常显示,不会显示???????
不知道哪里的问题.准备跟踪调试一下
Mit1208 2010-10-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 likeyrain 的回复:]
看一下IdHttp的编码,改到对应的编码就可以啦,sIdHTTP.Request,另外内容也要做对应的转码,
[/Quote]

就2010不行,D7用2010下的代码,正常啊...郁闷了!
likeyrain 2010-10-21
  • 打赏
  • 举报
回复
看一下IdHttp的编码,改到对应的编码就可以啦,sIdHTTP.Request,另外内容也要做对应的转码,
Mit1208 2010-10-20
  • 打赏
  • 举报
回复
我的可以上传成功!...
但就是上传的中文会变成????????
而英文和数字就没有问题!
不知道哪里的问题.!
kye_jufei 2010-10-20
  • 打赏
  • 举报
回复
unit UpDownFile;

interface

uses
Windows, Classes, Idhttp, URLMon, IdMultipartFormData;

const UpUrl = 'http://127.0.0.1/upfile/upfile.asp';
const UpFileName = 'C:\Documents and Settings\Administrator\桌面\test\web.mdb';
const DownUrl = 'http://www.google.com/images/logo_sm.gif';
const DownFileName = 'web.gif';

type
TUpDownFile = class
private
FThreadID : DWord;
FHandle : THandle;
{ Private declarations }
public
constructor Create;
procedure UpFile;
procedure DownFile;
procedure Close;
end;

implementation

function UpFileEx(): string; stdcall;
var
MutPartForm: TIdMultiPartFormDataStream;
response: string;
FHttp: Tidhttp;
begin
FHttp := Tidhttp.Create(nil);
FHttp.HandleRedirects := true;
FHttp.AllowCookies := true;

MutPartForm := TIdMultiPartFormDataStream.Create;
MutPartForm.AddFormField('act', 'upload');
MutPartForm.AddFormField('upcount', '1');
MutPartForm.AddFormField('filepath', 'data');
MutPartForm.AddFormField('file1', 'filename="' + UpFileName + '"');
MutPartForm.AddFormField('Submit', 'Submit');
MutPartForm.AddFile('file1', UpFileName, 'text/plain');
try
response := FHttp.Post(UpUrl, MutPartForm);
//Messagebox(0, PAnsiChar(response), 'ca', MB_OK);
finally
MutPartForm.Free;
FHttp.Free;
end;
end;

function DownFileEx(): string; stdcall;
begin
UrlDownloadToFile(nil, PChar(DownUrl), PChar(DownFileName), 0, nil);
end;

constructor TUpDownFile.Create;
begin
//
end;

procedure TUpDownFile.UpFile;
begin
//FHandle := CreateThread(nil,0,@UpFileEx,nil,0,FThreadID);
UpFileEx;
end;

procedure TUpDownFile.DownFile;
begin
// FHandle := CreateThread(nil,0,@DownFileEx,nil,0,FThreadID);
DownFileEx;
end;

procedure TUpDownFile.Close;
begin
//ExitThread(FThreadID);
end;

end.

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧