WEB开发网
开发学院WEB开发ASP 用Delphi 6开发ASP上传组件详解 阅读

用Delphi 6开发ASP上传组件详解

 2007-12-09 12:51:04 来源:WEB开发网   
核心提示:end;function Tupfile.Get_FileSize: Integer;beginResult := length(FFileData);end;function Tupfile.Get_FileData: OleVariant;vari:integer;beginResult := VarArrayCr

end;


function Tupfile.Get_FileSize: Integer;
begin
Result := length(FFileData);
end;

function Tupfile.Get_FileData: OleVariant;
var
i:integer;
begin
Result := VarArrayCreate( [0,length(FFileData)], varByte );
for i := 0 to length(FFileData)-1 do
begin
Result[i] := Byte(FFileData[i+1]);
end;
end;

  这三个函数分别返回文件的名称、大小、数据。要注意的是,在返回文件数据时,必须进行相应的转换,将Delphi中的string类型转换为OleVariant类型。
  
procedure Tupfile.FileSaveAs(Filename: OleVariant);
var
fsout:TFileStream;
begin
fsout := TFileStream.Create(Filename,fmcreate);
try
fsout.Write(Byte(FFileData[1]),Length(FFileData))
finally
fsout.Free;
end;

end;

  这个方法将文件保存到服务器上的磁盘。

  编译myobj这个project,得到一个myobj.dll文件。开发工作就此完成。

3 使用ASP上传组件
  
  在命令行下,输入“regsvr32 myobj.dll”。弹出一个对话框,告诉你组件已经注册。如果找不到regsvr32.exe这个文件,它在windows\system32或winnt\system32目录下。
  将本文开头提到的test.asp文件修改为如下内容:

<%'建立对象
Set upfile = Server.CreateObject("myobj.upfile")

'获得表单对象
response.write upfile.form("a1")&"<br>"
response.write upfile.form("a2")&"<br>"
response.write upfile.form("a3")&"<br>"
response.write upfile.form("a4")&"<br>"
response.write upfile.form("a5")&"<br>"
response.write upfile.form("a6")&"<br>"

'获得文件大小
response.write "文件字节数:"&upfile.filesize&"<br>"
'获得文件类型
response.write "文件类型:"&upfile.filetype&"<br>"

'获得文件名,保存文件
upfile.filesaveas(Server.MapPath("")+upfile.filename)

set upfile = nothing
%>

  再次访问test.htm,提交表单。现在你可以看到相关的返回信息,并且在服务器上test.asp所处的目录下找到上传的文件。
  这个组件只能上传单个文件,但根据同样的原理,一次上传多个文件的功能也是不难实现的。有兴趣的读者可以自行尝试。

左轻侯
2002.6.20

上一页  1 2 3 4 

Tags:Delphi 开发 ASP

编辑录入:coldstar [复制链接] [打 印]
赞助商链接