CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

大家帮帮忙,跟贴者有分!

楼主hoverman(我心飞翔)2002-04-04 19:03:39 在 Web 开发 / ASP 提问

如何实现文件上传到服务器!最好有源代码。 问题点数:100、回复次数:11Top

1 楼iwaitu(Zimoo)回复于 2002-04-04 19:17:47 得分 5

装一个上传的组件是最简单的了。比如:AspUpload,可惜要注册。Top

2 楼sdliubo(Fuck Japanese!)回复于 2002-04-04 19:23:35 得分 5

也有无组件上传的    
  查找一下无组件上传!Top

3 楼sunnysnow(维雪)回复于 2002-04-04 19:27:08 得分 5

AspUpload测试版,下一个也能用呀,反正用了是给出vbscript代码,所以无所谓了。上北大天网搜吧Top

4 楼playking(风雪青松)回复于 2002-04-04 19:34:07 得分 5

是啊,网络上到处都是!Top

5 楼siekensou()回复于 2002-04-04 19:38:48 得分 45

转贴:   blow_jj(纪俊)  
     
     
      upload_5xsoft.inc***第一个文件  
  <SCRIPT   RUNAT=SERVER   LANGUAGE=VBSCRIPT>  
   
  '''''''''''''''''''''''''''''''''''''''''''''''''  
  '  
  '请保留此信息:   稻香老农制作   http://www.5xSoft.com/      
  '  
  '''''''''''''''''''''''''''''''''''''''''''''''''  
   
  dim   upfile_5xSoft_Stream  
   
  Class   upload_5xSoft  
       
  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="化境编程界HTTP上传程序   Version   1.0"  
  if   Request.TotalBytes<1   then   Exit   Sub  
  set   Form=CreateObject("Scripting.Dictionary")  
  set   File=CreateObject("Scripting.Dictionary")  
  set   upfile_5xSoft_Stream=CreateObject("Adodb.Stream")  
  upfile_5xSoft_Stream.mode=3  
  upfile_5xSoft_Stream.type=1  
  upfile_5xSoft_Stream.open  
  upfile_5xSoft_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_5xSoft_Stream.Position=theStart-1  
    stemp=""  
    for   i=1   to   theLen  
        if   upfile_5xSoft_Stream.EOS   then   Exit   for  
        c=ascB(upfile_5xSoft_Stream.Read(1))  
        If   c   >   127   Then  
          if   upfile_5xSoft_Stream.EOS   then   Exit   for  
          stemp=stemp&Chr(AscW(ChrB(AscB(upfile_5xSoft_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_5xSoft_Stream.Size-theLen  
        if   i>upfile_5xSoft_Stream.size   then   exit   Function  
        upfile_5xSoft_Stream.Position=i-1  
        if   AscB(upfile_5xSoft_Stream.Read(1))=AscB(midB(Str,1))   then  
          InString=i  
          for   j=2   to   theLen  
              if   upfile_5xSoft_Stream.EOS   then    
                  inString=0  
                  Exit   for  
              end   if  
              if   AscB(upfile_5xSoft_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_5xSoft_Stream.close  
      set   upfile_5xSoft_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_5xSoft_Stream.position=FileStart-1  
          upfile_5xSoft_Stream.copyto   dr,FileSize  
          dr.SaveToFile   FullPath,2  
          dr.Close  
          set   dr=nothing    
          SaveAs=0  
      end   function  
  End   Class  
  </SCRIPT>  
  up.asp*****第二个文件  
  <html>  
  <body>  
  <form   name="form1"   method="post"   action="upload.asp"   enctype="multipart/form-data">  
  <input   type=file   name="file1">  
  <input   type=submit   name="submit"   value="提交">  
  </form>  
  </body>    
  </html>  
  upload.asp**********第三个文件  
  <html>  
  <body>  
  <!--#include   FILE="upload_5xsoft.inc"-->    
  <%  
  set   upload=new   upload_5xsoft  
  for   each   formName   in   upload.file  
    set   file=upload.file(formName)  
    if   file.FileSize>0   then  
      file.SaveAs   Server.mappath(file.FileName)    
      response.write   file.FilePath&file.FileName&"   ("&file.FileSize&")   =>   "  
      response.write   file.FileName&"   成功!<br>"  
    end   if  
    set   file=nothing  
  next  
  set   upload=nothing  
  %>    
  共三个文件,我已经测试过,好用。Top

6 楼playking(风雪青松)回复于 2002-04-04 19:47:46 得分 10

www.oxdns.com/download/download.asp  
  到袁飞的网站上,那里有很多组件Top

7 楼likesome(梦龙)回复于 2002-04-04 19:48:48 得分 5

其实用组件很方便,代码简单  
  ASPLoad就不错,许多地方可以下载Top

8 楼ibadboy(大木头)回复于 2002-04-04 20:42:03 得分 5

建议用组件,这样比较不耗资源Top

9 楼zhenhao(轻松XP)回复于 2002-04-04 20:47:55 得分 5

网上到处都是。再说你说的是什么服务器,要是ftp服务器,还用别的东西吗。Top

10 楼baggio785(狗狗)回复于 2002-04-04 20:52:57 得分 10

LyfUpload.dll  
  以前我使用无组件,但是那个东东占资源太多,不好  
  最好还是用组件  
  这个是刘玉峰组件,网上有很多,如果你想要,把信箱留下发给你Top

11 楼hoverman(我心飞翔)回复于 2002-04-05 15:07:01 得分 0

谢谢大家!!Top

相关问题

  • 作品宣传(跟贴者给分)
  • 好难的问题(解决者给多分,跟贴者有份)
  • 在线直播的问题!!(解决了分两贴给400分,跟此贴者有分,但别太灌了!!)
  • 来这里看看,凡跟贴提出意见者有分.
  • 高兴总送分:终于看完了《C++ Primer》,要分者请跟贴........^_^
  • SOS:跟者有分!!!
  • SOS:跟者有分!!!
  • 版主,请跟CSDN反映一下!!!(进来跟贴者均有分)
  • 进者有分,发贴者得高分!
  • 倒分贴 务跟! 谢谢!

关键词

  • 组件
  • 文件
  • aspupload
  • 无组件上传

得分解答快速导航

  • 帖主:hoverman
  • iwaitu
  • sdliubo
  • sunnysnow
  • playking
  • siekensou
  • playking
  • likesome
  • ibadboy
  • zhenhao
  • baggio785

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo