HTML是这样写的。<form name="form" method="post" action="UpFile.DLL" enctype="multipart/form-data">
<input type="file" name="file1">
<input type="submit" name="Submit" value="上传">
</form>
在UpFile.DLL这个文件里面,
Request.Files.Count始终为0
Request.ContentFields.Text内容是:
7d52a81e1500fe Content-Disposition: form-data; name="file1" filename="D:\临时\Heart.bmp" Content-Type: image/bmp BM?
表明客户端提交的文件是正确的,可是Request.Files.Count始终为0,该怎么接收客户端传过来的文件和保存这个文件呢?
<input type="file" name="file1">
<input type="submit" name="Submit" value="上传">
</form>
在UpFile.DLL这个文件里面,
Request.Files.Count始终为0
Request.ContentFields.Text内容是:
7d52a81e1500fe Content-Disposition: form-data; name="file1" filename="D:\临时\Heart.bmp" Content-Type: image/bmp BM?
表明客户端提交的文件是正确的,可是Request.Files.Count始终为0,该怎么接收客户端传过来的文件和保存这个文件呢?
解决方案 »
- 急聘DELPHI高手
- 谁能为我解答DELPHI 的编译错误问题
- 链表问题
- 请SuanAddMiao(算苗)进来接分。(第二百)
- Listing A System's Drives In A ComboBox, Listbox,...Using Images
- 以前在网上看到的文章“delphi vs vc++”不知道大家看过没有!!!(3)
- 请高手帮助!adodataset 中 如何调用过程及参数?
- 关于TCanvas.StretchDraw的问题????居然没有人能开腔说点什么!!
- 关于TreeView编程,有得学!!!
- 关于post与直接用sql语句保存记录的区别
- D版第一届CS大赛,请大家踊跃参加
- 急!求
http://pi3web.sourceforge.net/support/msg00237.html
而是通过分解Boundary来判断。
例:
http://www.codenet.ru/progr/delphi/stat/dupload.php
---------------------------------------------------
const
UploadPath = 'C:\temp\upload\';...var
AllContent, Boundary, Data: string;
Header, HList: TStrings;
OutStream: TFileStream;
begin
...
if Request.ContentLength = Length(AllContent) then
while Length(AllContent) > Length('--' + Boundary + '--' + #13#10) do
begin
Header := TStringList.Create;
HList := TStringList.Create;
try
AllContent := ReadMultipartRequest('--' + Boundary, AllContent,
Header, Data);
ExtractHeaderFields([';'], [' '],
PChar(Header.Values['Content-Disposition']), HList, False, True);
if (Header.Values['Content-Type'] <> '') and (Data <> '') then
begin
OutStream:=TFileStream.Create(UploadPath +
ExtractFileName(HList.Values['filename']), fmCreate);
try
try
OutStream.WriteBuffer(Pointer(Data)^, Length(Data));
Response.Content := Response.Content +
Format('<p>File <b>%s</b> saved.',
[ExtractFileName(HList.Values['filename'])]);
except
Response.Content := Response.Content +
Format('<p>Unable to save file <b>%s</b>.', [UploadPath +
ExtractFileName(HList.Values['filename'])]);
end;
finally
OutStream.Free;
end
end
else
Response.Content := Response.Content + Format('<p>Field <b>%s</b> = %s',
[HList.Values['name'], Data]);
finally
Header.Free;
HList.Free;
end;
end;
...
可是Request.Files.Count=0没戏
Request.Files.Count只能在WebSnap中用,在如TAbstractWebRequestFiles/TWebRequest只是个placeholder。
你看看代码也能看的出来,是virtual; abstract;