高分求网页的文件上传组件代码,急,分可以再加(300分)

  • 主题发起人 主题发起人 U100
  • 开始时间 开始时间
U

U100

Unregistered / Unconfirmed
GUEST, unregistred user!
如题,做学校设计需要一个网站上传文件的组件,要做成dll的,大家帮忙阿。
 
我这儿有个用Delphi写的,支持内存流和临时文件两种模式,
(自己写的,模仿ASP无组件上传)
也可以同时使用两种模式,
上传文件时,资源占用极少,包括CPU占用和内存占用,
留下Email
我给你发送我自己写的上传支持对象,
和一个简单的演示程序,
演示程序能够进行文件的上传,并显示图像文件列表,
并能浏览上传的图片
 
测试程序的使用方法,uploader.dll
首先开放虚拟目录的应用程序执行权限
然后,输入地址 http://localhost/uploader.dll 进行访问
(假设uploader.dll在根目录)
然后会出现上传界面,选择文件,进行上传
文件默认被上传到 c:/uploaded/ 目录

演示程序的文件上传部分的内容为:

var
m, i: Integer;
sf, sm: String;
f: TSearchRec;
r: Integer;
begin
UpLoadTempDir := ''; //指定文件上传的临时目录为系统临时目录
//如果上传的对象小于5M则使用内存流来保存数据,默认值为10M
MemStreamLimit := 5 * 1024 * 1024;
//如果上传的对象超过1G则不允许上传,默认值为800M
UpLoadSizeLimit := 1000 * 1024 * 1024;
msg := Request.ContentFields.Text;
m := Request.Files.Count;
if m > 0 then
begin
msg := msg + #13#10 + '上传了 ' + IntToStr(m) + ' 个文件';
for i := 0 to Request.Files.Count - 1 do
begin
sm := Request.Files.FileName;
if (ExtractFileName(sm) <> '') then
begin
//强制创建文件存放目录
sf := 'c:/uploaded/';
ForceDirectories(sf);
sf := sf + ExtractFileName(Request.Files.FileName);
if TWebRequestFile(Request.Files).SaveToFile(sf) then
begin
msg := msg + #13#10 + '文件'+ IntToStr(i+1) + ': ' +
Request.Files.FileName + #13#10 +
' 文件已保存到服务器,位置: ' + sf;
end;
end;
end;
end;

组件对象,请到此处下载:
http://new.playicq.com/dispdocnew.php?id=2671

 
左轻侯 写的-----
http://www.wushuang.net/develop/upfile.zip
 
呵呵,左先生写的那个可没有我的那个的几点好处啊,
在接收大文件时(譬如500M以上的文件,还支持上传文件大小限制
如果,超过某个大小,大小可设定,直接失败,而不会等到上传完毕后才失败),
我的对象可以直接写入临时文件,
SaveAs时进行改名,所以最好在一个驱动器下,速度较快

最主要的是,极少的内存占用和CPU开销
适合同时上传很大的文件
不需要注册ASP对象,只要有可执行权限,可直接执行,
而且很容易在Apache下面使用
 
谢谢LiChaoHui 研究中
 
daidxt@etang.com
 
我的组件怎么样啊? 楼主
 
后退
顶部