asp文件上传代码
‘壹’ ASP上传文件代码
1、2可以解决,3有点复杂,我对无组件上传也不是很熟悉,很久没有碰过了,
建议你使用别人做好的上传类,像无惧上传类、稻香老农的化境asp无组件上传类等都可以,有很多,都挺好用的。
关于1、2的问题可参照下面的解决办法,因为你的代码全写在一行,读起来太麻烦,所以我给拆开了。代码如下:
<html>
<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.to 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,c&c)+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.net 2.0中如何实现上传文件与下载文件 用啥控件和代码啊
需用到FileUpLoad控件
#region 文件上传
            /*
            if (FileUpload1.HasFile)
            {
                string type = FileUpload1.PostedFile.ContentType.ToString();
                if (type == "image/pjpeg")
                {
                    string path = Server.MapPath("up/");
                    FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);
                    Response.Write("<script>alert('上传成功!');</script>");
                }
                else
                    Response.Write("<script>alert('请上传获得支持的文件类型!');</script>");
            
            }
            else
                Response.Write("<script>alert('请选择您要上传的文件!');</script>");
             //*/
‘叁’ 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>

(3)asp文件上传代码扩展阅读
几种文件上传技术的比较
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源码:上传文件大小限定,图片尺寸自动调整
分类:  电脑/网络 >> 程序设计 >> 其他编程语言 
   问题描述: 
  
 网上搜的多而且杂,越看越迷糊..........
 
 最好把每页的代码都写一下,大致两三个页就可以解决了,谢谢达人帮助!!!!!!
 
   解析: 
  
 三个页:选择页,上传页sub,调用的代码页upload.inc,
 
 我自己就在用这个,LZ给分吧
1浏览上传:
 
 <form action="sub" method="post" enctype="multipart/form-data" target="_self">
 
 <input type=file name=src size="20" value="浏览">
 
 <input type=submit value="上传" name=B1 IsShowProcessBar="True">
 
 </form>
 
 sub 执行上传并返回地址,同时保存文件名在session(ccc)中
 
 <!--#include FILE="upload.inc"-->
 
 <%
 
 dim upload,file,formName,formPath,iCount,fileformat
 
 set upload=new upload_F
 
 function MakedownName()
 
  dim fname
 
  fname = now()
 
  fname = replace(fname,"-","")
 
  fname = replace(fname," ","") 
 
  fname = replace(fname,":","")
 
  fname = replace(fname,"PM","")
 
  fname = replace(fname,"AM","")
 
  fname = replace(fname,"上午","")
 
  fname = replace(fname,"下午","")
 
  fname = int(fname) + int((10-1+1)*Rnd + 1)
 
  MakedownName=fname
 
 end function 
 
 formPath="upload/"
 
 iCount=0
 
 for each formName in upload.file ''列出所有上传了的文件
 
 set file=upload.file(formName) ''生成一个文件对象
 
 fileformat=lcase(right(file.filename,4))
 
 if fileformat="" or fileformat="" then
 
  response.write"<script>alert('文件格式不对,请重新上传!');location='"&request.ServerVariables("HTTP_REFERER")&"'</script>"
 
 response.end
 
 end if 
 
 if file.FileSize>0 then ''如果 FileSize > 0 说明有文件数据
 
 newname=MakedownName()&"."&mid(file.FileName,InStrRev(file.FileName, ".")+1)
 
 session("ccc")=newname
 
  file.SaveAs Server.mappath(formPath&newname) ''保存文件
 
  iCount=iCount+1
 
 else 
 
  response.write "<font style=FONT-SIZE:9pt>未找到文件 <A HREF=javascript:history.back(1)>重新上传</A><font style=FONT-SIZE:9pt>"
 
  response.end
 
 end if
 
 next
 
 %>
 
 <%
 
 response.write "<a href='upload/"&newname&"' target=_blank>upload/"&newname&" </a>("&cint(file.FileSize/1024)&"K) 上传成功!"
 
 %>
 
 <%
 
 set file=nothing
 
 set upload=nothing ''删除此对象
 
 %> 
 
 upload.inc 页的代码如下:
 
 <SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>
 
 dim upfile_Stream
 
 Class upload_F
 
 dim Form,File,Version
 
 Private Sub Class_Initialize 
 
 dim iStart,iFileNameStart,iFileNameEnd,iEnd,vbEnter,iFormStart,iFormEnd,theFile
 
 dim strDiv,mFormName,mFormValue,mFileName,mFileSize,mFilePath,iDivLen,mStr
 
 Version="upload Version 1.0"
 
 if Request.TotalBytes<1 then Exit Sub
 
 set Form=CreateObject("Scripting.Dictionary")
 
 set File=CreateObject("Scripting.Dictionary")
 
 set upfile_Stream=CreateObject("Adodb.Stream")
 
 upfile_Stream.mode=3
 
 upfile_Stream.type=1
 
 upfile_Stream.open
 
 upfile_Stream.write Request.BinaryRead(Request.TotalBytes)
 
 vbEnter=Chr(13)&Chr(10)
 
 iDivLen=inString(1,vbEnter)+1
 
 strDiv=subString(1,iDivLen)
 
 iFormStart=iDivLen
 
 iFormEnd=inString(iformStart,strDiv)-1
 
 while iFormStart < iFormEnd
 
  iStart=inString(iFormStart,"name=""")
 
  iEnd=inString(iStart+6,"""")
 
  mFormName=subString(iStart+6,iEnd-iStart-6)
 
  iFileNameStart=inString(iEnd+1,"filename=""")
 
  if iFileNameStart>0 and iFileNameStart<iFormEnd then
 
  iFileNameEnd=inString(iFileNameStart+10,"""")
 
  mFileName=subString(iFileNameStart+10,iFileNameEnd-iFileNameStart-10)
 
  iStart=inString(iFileNameEnd+1,vbEnter&vbEnter)
 
  iEnd=inString(iStart+4,vbEnter&strDiv)
 
  if iEnd>iStart then
 
  mFileSize=iEnd-iStart-4
 
  else
 
  mFileSize=0
 
  end if
 
  set theFile=new FileInfo
 
  theFile.FileName=getFileName(mFileName)
 
  theFile.FilePath=getFilePath(mFileName)
 
  theFile.FileSize=mFileSize
 
  theFile.FileStart=iStart+4
 
  theFile.FormName=FormName
 
  file.add mFormName,theFile
 
  else
 
  iStart=inString(iEnd+1,vbEnter&vbEnter)
 
  iEnd=inString(iStart+4,vbEnter&strDiv)
 
  if iEnd>iStart then
 
  mFormValue=subString(iStart+4,iEnd-iStart-4)
 
  else
 
  mFormValue="" 
 
  end if
 
  form.Add mFormName,mFormValue
 
  end if
 
  iFormStart=iformEnd+iDivLen
 
  iFormEnd=inString(iformStart,strDiv)-1
 
 wend
 
 End Sub
 
 Private Function subString(theStart,theLen)
 
 dim i,c,stemp
 
 upfile_Stream.Position=theStart-1
 
 stemp=""
 
 for i=1 to theLen
 
  if upfile_Stream.EOS then Exit for
 
  c=ascB(upfile_Stream.Read(1))
 
  If c > 127 Then
 
  if upfile_Stream.EOS then Exit for
 
  stemp=stemp&Chr(AscW(ChrB(AscB(upfile_Stream.Read(1)))&ChrB(c)))
 
  i=i+1
 
  else
 
  stemp=stemp&Chr(c)
 
  End If
 
 Next
 
 subString=stemp
 
 End function
 
 Private Function inString(theStart,varStr)
 
 dim i,j,bt,theLen,str
 
 InString=0
 
 Str=toByte(varStr)
 
 theLen=LenB(Str)
 
 for i=theStart to upfile_Stream.Size-theLen
 
  if i>upfile_Stream.size then exit Function
 
  upfile_Stream.Position=i-1
 
  if AscB(upfile_Stream.Read(1))=AscB(midB(Str,1)) then
 
  InString=i
 
  for j=2 to theLen
 
  if upfile_Stream.EOS then 
 
  inString=0
 
  Exit for
 
  end if
 
  if AscB(upfile_Stream.Read(1))<>AscB(MidB(Str,j,1)) then
 
  InString=0
 
  Exit For
 
  end if
 
  next
 
  if InString<>0 then Exit Function
 
  end if
 
 next
 
 End Function
 
 Private Sub Class_Terminate 
 
  form.RemoveAll
 
  file.RemoveAll
 
  set form=nothing
 
  set file=nothing
 
  upfile_Stream.close
 
  set upfile_Stream=nothing
 
 End Sub
 
 Private function GetFilePath(FullPath)
 
  If FullPath <> "" Then
 
  GetFilePath = left(FullPath,InStrRev(FullPath, "\"))
 
  Else
 
  GetFilePath = ""
 
  End If
 
 End function
 
 Private function GetFileName(FullPath)
 
  If FullPath <> "" Then
 
  GetFileName = mid(FullPath,InStrRev(FullPath, "\")+1)
 
  Else
 
  GetFileName = ""
 
  End If
 
 End function
 
 Private function toByte(Str)
 
  dim i,iCode,c,iLow,iHigh
 
  toByte=""
 
  For i=1 To Len(Str)
 
  c=mid(Str,i,1)
 
  iCode =Asc(c)
 
  If iCode<0 Then iCode = iCode + 65535
 
  If iCode>255 Then
 
  iLow = Left(Hex(Asc(c)),2)
 
  iHigh =Right(Hex(Asc(c)),2)
 
  toByte = toByte & chrB("&H"&iLow) & chrB("&H"&iHigh)
 
  Else
 
  toByte = toByte & chrB(AscB(c))
 
  End If
 
  Next
 
 End function
 
 End Class
 
 Class FileInfo
 
  dim FormName,FileName,FilePath,FileSize,FileStart
 
  Private Sub Class_Initialize 
 
  FileName = ""
 
  FilePath = ""
 
  FileSize = 0
 
  FileStart= 0
 
  FormName = ""
 
  End Sub
 
 Public function SaveAs(FullPath)
 
  dim dr,ErrorChar,i
 
  SaveAs=1
 
  if trim(fullpath)="" or FileSize=0 or FileStart=0 or FileName="" then exit function
 
  if FileStart=0 or right(fullpath,1)="/" then exit function
 
  set dr=CreateObject("Adodb.Stream")
 
  dr.Mode=3
 
  dr.Type=1
 
  dr.Open
 
  upfile_Stream.position=FileStart-1
 
  upfile_Stream.to dr,FileSize
 
  dr.SaveToFile FullPath,2
 
  dr.Close
 
  set dr=nothing 
 
  SaveAs=0
 
  end function
 
 End Class
 
 </SCRIPT>
