用Delphi 6开发ASP上传组件详解
2007-12-09 12:51:04 来源:WEB开发网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
- ››ASP.NET及JS中的cookie基本用法
- ››Delphi实现把10进制转换成16进制的函数进制转化
- ››ASP.NET获取MS SQL Server安装实例
- ››Delphi中将字符串按给定字符分隔(似split函数功能...
- ››Delphi 动态创建窗体,锁定窗口赋值
- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››asp.net实现调用百度pai 在线翻译英文转中文
- ››ASP.NET页面选项进行提示判断
- ››Asp.net定时执行程序
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››ASP.NET中利用DataList实现图片无缝滚动
更多精彩
赞助商链接