解决这个ASP大文件上传到异地服务器的问题,多少分都可以!!!

lauries 2004-06-25 09:04:13
我现在做一个文件上传的ASP程序,准备采用两个方法:

1、无组件上传:如使用无惧上传类上传
  方法成功。
  在本机测试上传时速度还可以,5M大约9秒,但是超过6M,速度就明显不行了。
  但是,我经常要上传约8M到10M的文件
  所以,这个使用ASP无组件上传方法不大适用,更何况不在本地上传。

2、采用ASPUPLOAD上传
  测试结果:
  本机上传约8.4M文件,速度很快,进度条一闪就上传完毕;
  但是,不是本机测试(上传到异地服务器)时,当量文件上传需要约3分多钟;

郁闷啊!实在没有找到什么好办法了。

想了下,用FTP。但是,没有找到相关文章,怎么在WEB页面程序中调用FTP,如serv-u。上传的文件怎么保存到数据库,可以不可以重新命名等等!

哪位XDJM有这方面的经验啊,教教我,多少分都可以,我全部的分都可以,谢谢了
...全文
579 点赞 收藏 21
写回复
21 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lauries 2004-06-26
谢谢,自己也顶一个吧
回复
fashchina 2004-06-26
up
回复
threezxw 2004-06-26
学习
帮你顶!!
回复
lauries 2004-06-26
用动网的组件上传:

文件大小(File.FileSize):9085910B
总执行时间:98921亳秒,平均速度:91.85 KB/s.

这样子怎么样,aspupload和这个比怎么样?
回复
lauries 2004-06-25
使用FTP上传,哪位兄台有这方面的介绍文章?谢谢


怎么在WEB页面程序中调用FTP,如serv-u。上传的文件怎么保存到数据库,可以不可以重新命名等等!
回复
longhuazhen 2004-06-25
要上传这么大的文件,不用ftp用什么?人家ftp有断点续传,web行吗?还是用ftp吧
回复
lauries 2004-06-25
to qwater(qwater):你有些设置不对吧

我没有做任何设置,我就是安装了ASPUPLOAD,然后就看到IIS里面增加了一个虚拟目录,直接打开它进行测试的啊

还有哪个地方需要设置吗?请教

===============================================================================

我经常需要上载的文件在8M到15M
回复
qwater 2004-06-25
ASPUPLOAD不应该那么慢,你有些设置不对吧。把这个搞明白,时间最短。
回复
lauries 2004-06-25
先谢谢大家

ASP调用SERV_U:这个值得关注一下,我找找看

自己写COM:我现在急用,因为现在还不会写COM,恐怕老大给不了我学习的时间了 :)
回复
Tal 2004-06-25
自己写COM
回复
xiaoyuehen 2004-06-25
我也不太会..关注一下...

前段时间, 有个客户要求能上传 80M !的文件!最后只能给他开一个单独FTP..
回复
anwell 2004-06-25
有个ASP调用SERV_U的插件呀,你搜索一下拉
回复
lauries 2004-06-25
怎么我只能最大给100分啊????
回复
lauries 2004-06-25
先顶一下,再加分
回复
pboy116 2004-06-25
ASP + Serv-u 实现FTP的代码 awaysrain [原作]

<!--#include file="md5.asp"-->
<%
'**************************************************
'* 作者:awaysrain(绝对零度) *
'* 完成时间:2003-10-10 *
'* 测试环境:WIN2000SERVER,SERV-U 4.2-beta版 *
'**************************************************
Dim iniPath,iniFileName,iniStr,tmpStr,n
Dim userName,passWord,tmp

userName = "myfso222" '用户名
passWord = "awaysrain" '密码
tmp = "ai" '随机生成两个小写字母,(应该是随机生成的,但是我这里省略了)
passWord = tmp & UCase(md5(passWord)) '密码,是MD5加密过的,用动网的MD5加密程序,具体算法是随机生成两位小写字母,然后和你的密码连接后进行MD5加密,把随机生成的密码和MD5加密后的结果作为密码存放,举个例子来说比如下面的awaysrain用户,我的密码为awaysrain先随机生成两位小写字母ai,和我的密码awaysrain连接得到aiawaysrain把aiawaysrain进行MD5加密得到9118BFD94A9CE9CF37AE5BAA947ED596把随机生成两位小写字母ai和MD5加密后的结果9118BFD94A9CE9CF37AE5BAA947ED596连接得到密码ai9118BFD94A9CE9CF37AE5BAA947ED596

iniPath="D:\Program Files\Serv-U" 'ini文件的路径
iniFileName = "ServUDaemon.ini" 'ini的文件名

Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set ServUIni = fso.OpenTextFile(iniPath & "\" & iniFileName,1,false)

iniStr = ""
n = 0
addedUserList = false

Set tf = fso.CreateTextFile(iniPath & "\" & iniFileName & "._awaysrain.tmp", True)
'生成新的临时INI文件

Do While not ServUIni.AtEndOfStream
tmpStr = ServUIni.ReadLine

If Instr("awaysrain||" & tmpStr,"awaysrain||User")>0 Then
'记录用户原来的数量
n = n+1
End If

If Instr("awaysrain||" & tmpStr,"awaysrain||[USER=")>0 and not addedUserList Then
'往用户列表的部分添加现在的用户
n = n +1
tf.WriteLine("User" & n & "=" & userName & "|1|0")
addedUserList = true
End If
tf.WriteLine(tmpStr)
Loop
ServUIni.Close

'添加新用户的信息,具体内容可以在SERV-U中新建用户并对照INI文件

tf.WriteLine("[USER=" & userName & "|1]") '用户名
tf.WriteLine("Password=" & passWord) '密码
tf.WriteLine("HomeDir=e:\temp") '主目录
tf.WriteLine("RelPaths=1") '是否锁定用户于主目录
tf.WriteLine("MaxUsersLoginPerIP=1") '相同IP同时登录数
tf.WriteLine("SpeedLimitDown=102400") '最大下载速度
tf.WriteLine("TimeOut=600") '空闲超时时间(秒)
tf.WriteLine("Access1=E:\Temp|RLP") '可访问目录,可以不是一个,比如 'Access2=E:\Temp1|RLP'

tf.Close
'--------------------备份原来的INI文件--------------------------
Set f1 = fso.GetFile(iniPath & "\" & iniFileName)
f1.Copy (iniPath & "\" & iniFileName & "._awaysrain.bak")
f1.Delete
'--------------------把生成的临时INI文件改为正式的INI--------------------------
Set f1 = fso.GetFile(iniPath & "\" & iniFileName & "._awaysrain.tmp")
f1.Copy (iniPath & "\" & iniFileName)
f1.Delete

Set fso = nothing
%>

注:以上代码假设ServUDaemon.ini中的格式只有一个域并已经至少有一个用户

测试的ServUDaemon.ini文件结构如下:
==================================
[Domain1]
User1=222|1|0
User2=myfso111|1|0
[USER=222|1]
Password=hwB1ECF70CDAF5DAE2B981AE394EEFCDC0
HomeDir=E:\Temp
RelPaths=1
TimeOut=600
Access1=E:\Temp|RLP
[USER=myfso111|1]
Password=ai9118BFD94A9CE9CF37AE5BAA947ED596
HomeDir=e:\temp
RelPaths=1
TimeOut=600
Access1=E:\Temp|RLP

生成后的文件结构如下
==================================
[Domain1]
User1=222|1|0
User2=myfso111|1|0
User3=myfso222|1|0
[USER=222|1]
Password=hwB1ECF70CDAF5DAE2B981AE394EEFCDC0
HomeDir=E:\Temp
RelPaths=1
TimeOut=600
Access1=E:\Temp|RLP
[USER=myfso111|1]
Password=ai9118BFD94A9CE9CF37AE5BAA947ED596
HomeDir=e:\temp
RelPaths=1
TimeOut=600
Access1=E:\Temp|RLP
[USER=myfso222|1]
Password=ai9118BFD94A9CE9CF37AE5BAA947ED596
HomeDir=e:\temp
RelPaths=1
TimeOut=600
Access1=E:\Temp|RLP

http://dev.csdn.net/develop/article/23/23960.shtm
回复
smallcatyyy 2004-06-25
不错的想法!关注!
回复
dingdi 2004-06-25
这么大的文件,我认为最好用FTP,
关注
回复
jhlgxyxl 2004-06-25
学习

回复
yinshao 2004-06-25
IIS里右键点[属性],进[主目录]--进底下的[配置]---进[选项]---ASP脚本超时默认的90秒,你加长这个时间!
回复
yinshao 2004-06-25
IIS里设置属性,连接会话的时间你加长一些,就应该有足够的时间上传!
回复
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2004-06-25 09:04
社区公告
暂无公告