asp上传文件代码(asp上传大文件)
ASP上传文件代码
1、2可以解决,3有点复杂,我对无组件上传也不是很熟悉,很久没有碰过了,
建议你使用别人做好的上传类,像无惧上传类、稻香老农的化境asp无组件上传类等都可以,有很多,都挺好用的。
关于1、2的问题可参照下面的解决办法,因为你的代码全写在一行,读起来太麻烦,所以我给拆开了。代码如下:
head
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
title无标题文档/title
/head
body
%
Response.Expires=0
if Request.TotalBytes then
set a=createobject("adodb.stream")
a.Type=1
a.Open
a.write Request.BinaryRead(Request.TotalBytes)
a.Position=0
b=a.Read
c=chrB(13)chrB(10)
d=clng(instrb(b,c))
e=instrb(d+1,b,c)
set f=createobject("adodb.stream")
f.type=1
f.open
a.Position=d+1
a.copyto f,e-d-3
f.Position=0
f.type=2
f.CharSet="GB2312"
g=f.readtext
f.Close
h=mid(g,instrRev(g,"\")+1,e)
i=instrb(b,cc)+4
j=instrb(i+1,b,leftB(b,d-1))-i-2
if j 1 then
set f =nothing
set a =nothing
response.write "未选择要上传的文件a href='?'重新上传/a"
response.end
end if
f.Type=1
f.Open
a.Position=i-1
a.CopyTo f,j
f.SaveToFile server.mappath("/images/" h),2 '上传至“/images/”文件夹中
f.Close
set f=Nothing
a.Close
set a=Nothing
response.write "a href="Server.URlEncode(h)""h"/a"
end if
%
script language="javascript"
function checkupload(){
if(document.upload_form.fe.value ==""){
alert("未选择要上传的文件");
return false;
}
}
/script
form name="upload_form" enctype="multipart/form-data" method="post" onsubmit="return(checkupload())"
input type="file" name="fe"
input type="submit" value="上传" name="B1"/form
/body
/html
ASP上传代码
我告诉你把,我找这段代码可花了不少时间。
index.html:
form ACTION="asp.asp" METHOD="POST" name="form1" id="form1"
input name="name" type="file" id="name" /
/form
asp.asp:
%
Function GetFileName(ByVal strFile)'精简信息,获得文件名的函数
If strFile "" Then
GetFileName = mid(strFile,InStrRev(strFile, "\")+1)
Else
GetFileName = ""
End If
End function
strFileName = Request.Form("name")'“name"这就是前面文件域的name的值,2个地方要一样
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type = 1 ' adTypeBinary
objStream.Open
objStream.LoadFromFile strFileName
objStream.SaveToFile Server.MapPath(GetFileName(strFileName)),2'这是编辑路径的地方默认是放在和此页同目录下,要是不是放在和此页同目录下的化可也改比如:("img/xu/"GetFileName(strFileName))
objStream.Close
%
如何使用AspUpload组件上传文件
你好,试试以下的方法:一、摘要Asp组件有内置的、服务器安装时附带的,更多的是第三方提供的,今天来学习文件上传的其中一个组件aspupload组件使用方法。
二、aspupload组件的下载、安装或注册 1、asp组件的下载、安装
(1)可以从网上下载。
(2)直接双击后进行安装。
AspUpload组件下载2、asp上传组件的功能
a.限制上载文件的大小
b.设置用户的权限
c.修改文件属性
d.同时上载多个文件
e.能够将文件保存到数据库中
f.支持文件删除,自动生成与服务器上文件不同名的文件
g.拥有管理权限的用户甚至可以使用该控件进行远程注册
三、aspupload组件的简单应用
1、实例一(1.asp):通过代码实现三个文件的上传功能。
如下图所示:
(1)静态页面:1个表单,三个文件域,一个按钮,其中表单form的动作如下。 (2)其中客户端文件要注意几点:
* 文件上载提交表单(Form)的enctype必须指定为“multipart/form-data”
* 语句表示上载文件域,用户可以在该域中输入或选定文件。
* 传递一个参数act(名称可自己取),其值可以自己随便定,目的是触发上传事件。
(3)动态代码如下:
2、实例二(2.asp):修改程序1.asp,要求在上传文件后显示上传文件的文件名及大小。
增加如下代码: response.write("文件1是:
")response.write(upload.files(1).path)
response.write("文件2是:
")response.write(upload.files(2).path)
response.write("文件3是:
")
response.write(upload.files(3).path)
说明:
upload.files方法用来获取文件的相关属性,path是文件的路径,size是文件的大小。
3、实例三(3.asp):修改程序2.asp,要求上传的三个文件大小不能超过5K,如果上传的文件已经存在则要求不覆盖文件。
在上传之前增加如下代码:
upload.setmaxsize 5120,false
upload.overwritefiles=fals说明:
(1)upload.setmaxsize 5120,false 其功能为设置文件最大为5120字节,false参数说明当文件超过5120字节时则删除超过部分,true参数说明当文件超过5120字节时则出错。
(2)upload.overwritefiles=false,其功能表示文件不进行覆盖,如果上传同样文件名的文件,上传后文件名自动会在后面添加一个数字。
四、自学第二个上传文件的组件
1、Lyfupload组件的下载
2、学习此组件的安装或注册
3、通过课本例子进行文件的上传
五、问题
1、传到学校里服务器172.18.0.7运行时出现以下错误,Server.CreateObject 失败
分析原因:学校服务器不支持aspupload上传组件
2、如果服务器不支持aspupload等上传组件,请大家使用无组件上传功能(编写代码),见书本上P322,此类代码比较复杂,同学们能够拿来使用,无须自己编写。
3、大家在网上申请个人空间时要看清服务器支持哪些组件,这样有利于编写代码。
asp 提交表单和上传文件
asp.net和asp上传方式基本相似。都需要使用到form表单。下面分别介绍asp和asp.net两种文件上传方式。
第一种:asp方式
首先建立form表单
form name="form1" method="post" action="send.asp"?enctype="multipart/form-data"
input name="title" type="text"/
input name="uploadimg" type="file" /
input name="submit" type="submit" value="提交"/
/form
asp的表单一定要注意加上enctype="multipart/form-data"这个属性,否则是上传不了图片的,这个属性很关键。
上传处理代码也就是send.asp的处理代码。
因为asp本身没有上传的组件或控件,这里只能借助第三方式的组件或类。上传组件推荐使用aspJpeg组件,这个组件不仅可以上传文件,如果是图片的话,可以调节尺寸尺寸,创建缩略图等。很方便,目前一般的空间商都支持这个组件,另外就是使用组件上传类,像风声,无惧等,都是无组件上传。
上传代码,这里假设采用的是风声无组件上传类。类文件已经包含进去。
include file="uploadclass.asp"--
处理代码:
先初始化上传类
dim myrequest
set myrequest = new UpLoadClass
设置属性:
myrequest.FileType="gif,jpeg,jpg,png" ? ?//设置上传类型
myrequest.SavePath="../upload/" ? ? ? ? ? ? //设置上传路径 ? ?
? ? ?myrequest.MaxSize=100*1024 ? ? ? ? ? ? ? ? ?//设置上传文件的大小,
? ? ?myrequest.AutoSave=1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//设置保存方式,为1表示自动保存
? ? ?myrequest.Open ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //打开文件流
? ? ?title =?myrequest.form("title")
? ? ?img =?myrequest.form("uploadimg") ? ? //这两部表示接收form表单中的数据。不 ? ? ? ?能再用request.form或request.querystring来接收了,必须用刚才初始化的对象 ?
? ? ?myrequest来接收。
? ? ?现在数据接收到了,剩下的就是保存到数据库。这和常用的数据保存方式一下的,拼接SQL.然后再执行,这里不赘述。
第二种asp.net方式。
asp.net方式,因为采用的是服务器控件,所以与asp有点区别。
首先是form不同,asp.net的form是服务器控件,需要添加ID和runat="Server"如
form name="form1" ID="form1" runat="Server"
asp:FileUpload ID="FileUpload1"?runat="server" /
asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上传" /
/form
处理代码,上传并保存代码
protected?void?Button1_Click(object?sender, EventArgs e)
??? {
????????String?savePath = Server.MapPath("upload");
????????if?(FileUpload1.HasFile)
??????? {
????????????String?filename;
??????????? filename = FileUpload1.FileName;
??????????? savePath +=filename;
??????????? FileUpload1.SaveAs(savePath);
????????????Page.Response.Write(FileUpload1.PostedFile.ContentType + FileUpload1.PostedFile.ContentLength+"br");
????????????Page.Response.Write("img src='"+savePath+"'");
? ? ? }
????????else
??????? {
????????????Page.Response.Write("fff");
??????? }
??? }
asp提交和上传文件,与asp.net是不同的。一个是html标签,一个是服务器控件。相对来说,asp.net的文件上传比asp简单很多,因为asp.net提供了相对应的上传控件。而asp没有。只有采用第三方组件或无组件上传类。上传文件成功后,另外还可以加入更多的处理元素,如图片入库,加上水印等,这需要你自己去思考和查找资料了。
asp如何实现文件上传功能
基本原理是:采用ADO Stream对象的BinaryRead方法将FORM中的所有数据读出,从中截取出所需的文件数据,以二进制文件方式存盘。
下面是上传文件页面的一个例子:
<html>
<body>
<form name="Upload" Method="Post" Enctype="multipart/form-data" Action="Upload.asp">
<input type="file" name="FileName">
<INPUT TYPE="Submit" VALUE="Upload"></TD>
</form>
</body>
</html>
扩展资料
几种文件上传技术的比较
1、基于HTTP协议
该方法需要编程者利用第三方软件,如DELPHI、VB等,在应用程序中先进行HTTP协议编程,然后将待上传文件内容按HTTP协议的格式打包,最后向WEB服务器发送上传的请求报文,从而实现文件的上传。
因为DELPHI和VB不能编写完整的WEB网络程序,只能编写WEB小应用程序,因此,该方法只用于功能受限的网络应用。
2、基于VB(或DELPHI等)开发的文件上传组件
该方法利用VB(或DELPHI等编程语言)开发ASP服务器组件,实现特定的文件上传服务。它首先利用ASP表单功能将文件(二进制格式)从用户端上传到服务器端,然后使用VB开发的组件,对二进制文件进行处理,成为可以正常读写的文件。
该方法要求编程者不仅掌握ASP语言,而且还能利用VB等第三方语言进行组件编程,增加了开发的难度。
3、基于数据库技术
该方法和上个方法有类似之处。不同的地方在于对上传的二进制文件的处理上。它使用数据库来保存二进制文件。无论是小型数据库还是大型数据库都提供了存储二进制数据的数据类型,只要以Append Chunk方式将数据存入相应的字段就可以了。
该方法虽然简单可行,但是因为每次上传的文件大小都是不一样的,因此,会对数据库的空间造成很大的浪费,降低了数据的访问速度;并且使得文件只能在数据库环境下进行访问,造成了很大的不便。
asp上传文件到服务器的代码怎么写?
html
head
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
title无标题文档/title
/head
body
%
'On Error Resume Next
Response.Expires=0
if Request.TotalBytes then
set a=createobject("adodb.stream")
a.Type=1
a.Open
a.write Request.BinaryRead(Request.TotalBytes)
a.Position=0
b=a.Read
c=chrB(13)chrB(10)
d=clng(instrb(b,c))
e=instrb(d+1,b,c)
set f=createobject("adodb.stream")
f.type=1
f.open
a.Position=d+1
a.copyto f,e-d-3
f.Position=0
f.type=2
f.CharSet="GB2312"
g=f.readtext
f.Close
h=mid(g,instrRev(g,"\")+1,e)
i=instrb(b,cc)+4
j=instrb(i+1,b,leftB(b,d-1))-i-2
if j 1 then
set f =nothing
set a =nothing
response.write "未选择要上传的文件a href='?'重新上传/a"
response.end
end if
f.Type=1
f.Open
a.Position=i-1
a.CopyTo f,j
h = Mid(h, InStrRev(h, "filename=""") + 10) '这是我帮你添加的,文件名的获取没有正确
f.SaveToFile server.mappath("/EXCEL/" h),2
f.Close
set f=Nothing
a.Close
set a=Nothing
'response.write "a href="Server.URlEncode(h)""h"/a"
end if
If Err.number 0 Then
response.Write err.number
response.Write err.Description
Response.End
End If
%
script language="javascript"
function checkupload() {
if (document.upload_form.fe.value == "") {
alert("未选择要上传的文件");
return false;
}
}
/script
form name="upload_form" enctype="multipart/form-data" method="post" onsubmit="return(checkupload())"
input type="file" name="fe"/
input type="submit" value="上传" name="B1"/
/form
/body
/html