CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

急需一个上传图片的ASP源程序

楼主guangxiluye(碧绿)2003-06-03 07:54:02 在 Web 开发 / ASP 提问

我初涉ASP,要完成网站的某部份更新。更新要求是这样的:在一网页内某固定位置上需要上传好几张甚至十几张图片。请高手们帮帮忙,感激不尽!!! 问题点数:50、回复次数:13Top

1 楼lqflsh(不要让困难成为理由)回复于 2003-06-03 08:05:07 得分 0

process.asp  
   
  <!--#include   file="pic_myconn.asp"-->  
  <%  
  FormSize   =   Request.TotalBytes   '得到数据  
  FormData   =   Request.BinaryRead(   FormSize   )  
   
  function   ImageUp(formsize,formdata)   '这个函数的功能是截取其中的图像部分。  
      bncrlf=chrb(13)   &   chrb(10)   '做成函数后。以后你可以自己随意使用了。  
      divider=leftb(formdata,instrb(formdata,bncrlf)-1)  
      datastart=instrb(formdata,bncrlf&bncrlf)+4  
      dataend=instrb(datastart+1,formdata,divider)-datastart  
      imageup=midb(formdata,datastart,dataend)  
  end   function  
   
  Image=ImageUp   (FormSize,Formdata)   '这里就是图像部分了。  
   
  rs.open   "SELECT   *   FROM   image",myconn,1,2  
  rs.addnew  
  rs("img").appendchunk   Image   '所以这里是添加。  
  rs.Update  
  rs.close  
  %>  
  <script   language="javascript">  
          alert("添加成功!")  
          window.location="see.asp"  
  </script>  
   
   
   
  Top

2 楼guangxiluye(碧绿)回复于 2003-06-03 08:13:49 得分 0

那么这个pic_myconn.asp是干什么用的?  
  喔,对了,我不是想把图片存入数据库,是想把图片上传到某个文件夹!  
  ……我都糊涂了:0Top

3 楼gcs925(竹里坐消无事福,花间补读未完书)回复于 2003-06-03 08:15:26 得分 0

到论坛里搜索一下,有很多这样的帖子。  
   
  如果为了速度,还是用组件比较好。  
   
   
  楼上的方法,只能上传一张图片。而且,表单中不能包含其它内容。Top

4 楼jshao(临渊羡鱼,不如退而结网)回复于 2003-06-03 08:19:23 得分 50

_______________________upfile.htm___________________  
  <html>  
  <head>  
  <title>化境上传</title>  
  <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">  
  <style   type="text/css">  
  <!--  
  td   {     font-size:   9pt}  
  a   {     color:   #000000;   text-decoration:   none}  
  a:hover   {     text-decoration:   underline}  
  .tx   {     height:   16px;   width:   30px;   border-color:   black   black   #000000;   border-top-width:   0px;   border-right-width:   0px;   border-bottom-width:   1px;   border-left-width:   0px;   font-size:   9pt;   background-color:   #eeeeee;   color:   #0000FF}  
  .bt   {     font-size:   9pt;   border-top-width:   0px;   border-right-width:   0px;   border-bottom-width:   0px;   border-left-width:   0px;   height:   16px;   width:   80px;   background-color:   #eeeeee;   cursor:   hand}  
  .tx1   {   height:   20px;   width:   30px;   font-size:   9pt;   border:   1px   solid;   border-color:   black   black   #000000;   color:   #0000FF}  
  -->  
  </style>  
  </head>  
   
  <body   bgcolor="#FFFFFF"   text="#000000">  
  <form   name="form1"   method="post"   action="upfile.asp"   enctype="multipart/form-data"   >  
      <table   border="1"   cellspacing="0"   cellpadding="0"   bordercolorlight="#000000"   bordercolordark="#CCCCCC"   width="91"   height="23">  
          <tr>    
              <td   align="left"   valign="middle"   height="18"   width="18">&nbsp;</td>  
              <td   bgcolor="#CCCCCC"   align="left"   valign="middle"   height="18"   width="67">    
                  返回</td>  
          </tr>  
      </table>  
      <br>  
      <input   type="hidden"   name="act"   value="upload">  
      <br>  
      <table   width="71%"   border="1"   cellspacing="0"   cellpadding="5"   align="center"   bordercolordark="#CCCCCC"   bordercolorlight="#000000">  
          <tr   bgcolor="#CCCCCC">    
              <td   height="22"   align="left"   valign="middle"   bgcolor="#CCCCCC">文件上传</td>  
          </tr>  
          <tr   align="left"   valign="middle"   bgcolor="#eeeeee">    
              <td   bgcolor="#eeeeee"   height="92">    
                  <script   language="javascript">  
      function   setid()  
      {  
      str='<br>';  
      if(!window.form1.upcount.value)  
        window.form1.upcount.value=1;  
        for(i=1;i<=window.form1.upcount.value;i++)  
            str+='文件'+i+':<input   type="file"   name="file'+i+'"   style="width:400"   class="tx1"><br><br>';  
      window.upid.innerHTML=str+'<br>';  
      }  
     
      </script>  
                  <li>   需要上传的个数    
                      <input   type="text"   name="upcount"   class="tx"   value="1">  
                      <input   type="button"   name="Button"   class="bt"   onclick="setid();"   value="·   设定   ·">  
                  </li>  
                   
  <br>  
                  <br>  
                  <li>上传到:    
                      <input   type="text"   name="filepath"   class="tx"   style="width:400"   value="">  
                      如果还没有你所指的文件夹<font   color="#0000FF">请点击</font>   <a   href="createfold.htm"><font   color="#FF0000">创建文件夹</font></a></li>  
              </td>  
          </tr>  
          <tr   align="center"   valign="middle">    
              <td   align="left"   id="upid"   height="122">   文件1:    
                  <input   type="file"   name="file1"   style="width:400"   class="tx1"   value="">  
              </td>  
          </tr>  
          <tr   align="center"   valign="middle"   bgcolor="#eeeeee">    
              <td   bgcolor="#eeeeee"   height="24">    
                  <input   type="submit"   name="Submit"   value="·   提交   ·"   class="bt">  
                  <input   type="reset"   name="Submit2"   value="·   重执   ·"   class="bt">  
              </td>  
          </tr>  
      </table>  
  </form>  
  </body>  
  </html>  
  <script   language="javascript">  
   
  setid();  
  </script>Top

5 楼jshao(临渊羡鱼,不如退而结网)回复于 2003-06-03 08:19:58 得分 0

__________________upfile.asp__________________  
  <%OPTION   EXPLICIT%>  
  <%Server.ScriptTimeOut=5000%>  
  <!--#include   FILE="upload_5xsoft.inc"-->  
  <html>  
  <head>  
  <title>文件上传</title>  
  </head>  
  <body>  
  <br>  
  文件上传!  
  <hr   size=1   noshadow   width=300   align=left><br><br>  
  <%  
  dim   upload,file,formName,formPath,iCount  
  set   upload=new   upload_5xsoft   ''建立上传对象  
   
  response.write   upload.Version&"<br><br>"     ''显示上传类的版本  
   
  if   upload.form("filepath")=""   then       ''得到上传目录  
    HtmEnd   "请输入要上传至的目录!"  
    set   upload=nothing  
    response.end  
  else  
    formPath=upload.form("filepath")  
    ''在目录后加(/)  
    if   right(formPath,1)<>"/"   then   formPath=formPath&"/"    
  end   if  
   
  iCount=0  
  for   each   formName   in   upload.objForm   ''列出所有form数据  
    response.write   formName&"="&upload.form(formName)&"<br>"  
  next  
   
  response.write   "<br>"  
  for   each   formName   in   upload.objFile   ''列出所有上传了的文件  
    set   file=upload.file(formName)     ''生成一个文件对象  
    if   file.FileSize>0   then                   ''如果   FileSize   >   0   说明有文件数据  
      file.SaveAs   Server.mappath(formPath&file.FileName)       ''保存文件  
      response.write   file.FilePath&file.FileName&"   ("&file.FileSize&")   =>   "&formPath&File.FileName&"   成功!<br>"  
      iCount=iCount+1  
    end   if  
    set   file=nothing  
  next  
   
  set   upload=nothing     ''删除此对象  
  Htmend   iCount&"   个文件上传结束!"  
   
  sub   HtmEnd(Msg)  
    set   upload=nothing  
    response.write   "<br>"&Msg&"   [<a   href=""javascript:history.back();"">返回</a>]</body></html>"  
    response.end  
  end   sub  
  %>  
  </body>  
  </html>Top

6 楼jshao(临渊羡鱼,不如退而结网)回复于 2003-06-03 08:20:34 得分 0

_______________________upload_5xsoft.inc___________________  
  <SCRIPT   RUNAT=SERVER   LANGUAGE=VBSCRIPT>  
  dim   Data_5xsoft  
   
  Class   upload_5xsoft  
       
  dim   objForm,objFile,Version  
   
  Public   function   Form(strForm)  
        strForm=lcase(strForm)  
        if   not   objForm.exists(strForm)   then  
            Form=""  
        else  
            Form=objForm(strForm)  
        end   if  
    end   function  
   
  Public   function   File(strFile)  
        strFile=lcase(strFile)  
        if   not   objFile.exists(strFile)   then  
            set   File=new   FileInfo  
        else  
            set   File=objFile(strFile)  
        end   if  
    end   function  
   
   
  Private   Sub   Class_Initialize    
      dim   RequestData,sStart,vbCrlf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,theFile  
      dim   iFileSize,sFilePath,sFileType,sFormValue,sFileName  
      dim   iFindStart,iFindEnd  
      dim   iFormStart,iFormEnd,sFormName  
      Version="化境HTTP上传程序   Version   2.0"  
      set   objForm=Server.CreateObject("Scripting.Dictionary")  
      set   objFile=Server.CreateObject("Scripting.Dictionary")  
      if   Request.TotalBytes<1   then   Exit   Sub  
      set   tStream   =   Server.CreateObject("adodb.stream")  
      set   Data_5xsoft   =   Server.CreateObject("adodb.stream")  
      Data_5xsoft.Type   =   1  
      Data_5xsoft.Mode   =3  
      Data_5xsoft.Open  
      Data_5xsoft.Write     Request.BinaryRead(Request.TotalBytes)  
      Data_5xsoft.Position=0  
      RequestData   =Data_5xsoft.Read    
   
      iFormStart   =   1  
      iFormEnd   =   LenB(RequestData)  
      vbCrlf   =   chrB(13)   &   chrB(10)  
      sStart   =   MidB(RequestData,1,   InStrB(iFormStart,RequestData,vbCrlf)-1)  
      iStart   =   LenB   (sStart)  
      iFormStart=iFormStart+iStart+1  
      while   (iFormStart   +   10)   <   iFormEnd    
  iInfoEnd   =   InStrB(iFormStart,RequestData,vbCrlf   &   vbCrlf)+3  
  tStream.Type   =   1  
  tStream.Mode   =3  
  tStream.Open  
  Data_5xsoft.Position   =   iFormStart  
  Data_5xsoft.CopyTo   tStream,iInfoEnd-iFormStart  
  tStream.Position   =   0  
  tStream.Type   =   2  
  tStream.Charset   ="gb2312"  
  sInfo   =   tStream.ReadText  
  tStream.Close  
  '取得表单项目名称  
  iFormStart   =   InStrB(iInfoEnd,RequestData,sStart)  
  iFindStart   =   InStr(22,sInfo,"name=""",1)+6  
  iFindEnd   =   InStr(iFindStart,sInfo,"""",1)  
  sFormName   =   lcase(Mid   (sinfo,iFindStart,iFindEnd-iFindStart))  
  '如果是文件  
  if   InStr   (45,sInfo,"filename=""",1)   >   0   then  
  set   theFile=new   FileInfo  
  '取得文件名  
  iFindStart   =   InStr(iFindEnd,sInfo,"filename=""",1)+10  
  iFindEnd   =   InStr(iFindStart,sInfo,"""",1)  
  sFileName   =   Mid   (sinfo,iFindStart,iFindEnd-iFindStart)  
  theFile.FileName=getFileName(sFileName)  
  theFile.FilePath=getFilePath(sFileName)  
  '取得文件类型  
  iFindStart   =   InStr(iFindEnd,sInfo,"Content-Type:   ",1)+14  
  iFindEnd   =   InStr(iFindStart,sInfo,vbCr)  
  theFile.FileType   =Mid   (sinfo,iFindStart,iFindEnd-iFindStart)  
  theFile.FileStart   =iInfoEnd  
  theFile.FileSize   =   iFormStart   -iInfoEnd   -3  
  theFile.FormName=sFormName  
  if   not   objFile.Exists(sFormName)   then  
      objFile.add   sFormName,theFile  
  end   if  
  else  
  '如果是表单项目  
  tStream.Type   =1  
  tStream.Mode   =3  
  tStream.Open  
  Data_5xsoft.Position   =   iInfoEnd    
  Data_5xsoft.CopyTo   tStream,iFormStart-iInfoEnd-3  
  tStream.Position   =   0  
  tStream.Type   =   2  
  tStream.Charset   ="gb2312"  
                  sFormValue   =   tStream.ReadText    
                  tStream.Close  
  if   objForm.Exists(sFormName)   then  
      objForm(sFormName)=objForm(sFormName)&",   "&sFormValue      
  else  
      objForm.Add   sFormName,sFormValue  
  end   if  
  end   if  
  iFormStart=iFormStart+iStart+1  
  wend  
      RequestData=""  
      set   tStream   =nothing  
  End   Sub  
   
  Private   Sub   Class_Terminate      
    if   Request.TotalBytes>0   then  
  objForm.RemoveAll  
  objFile.RemoveAll  
  set   objForm=nothing  
  set   objFile=nothing  
  Data_5xsoft.Close  
  set   Data_5xsoft   =nothing  
    end   if  
  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  
  End   Class  
   
  Class   FileInfo  
      dim   FormName,FileName,FilePath,FileSize,FileType,FileStart  
      Private   Sub   Class_Initialize    
          FileName   =   ""  
          FilePath   =   ""  
          FileSize   =   0  
          FileStart=   0  
          FormName   =   ""  
          FileType   =   ""  
      End   Sub  
       
    Public   function   SaveAs(FullPath)  
          dim   dr,ErrorChar,i  
          SaveAs=true  
          if   trim(fullpath)=""   or   FileStart=0   or   FileName=""   or   right(fullpath,1)="/"   then   exit   function  
          set   dr=CreateObject("Adodb.Stream")  
          dr.Mode=3  
          dr.Type=1  
          dr.Open  
          Data_5xsoft.position=FileStart  
          Data_5xsoft.copyto   dr,FileSize  
          dr.SaveToFile   FullPath,2  
          dr.Close  
          set   dr=nothing    
          SaveAs=false  
      end   function  
      End   Class  
  </SCRIPT>Top

7 楼guangxiluye(碧绿)回复于 2003-06-03 08:27:46 得分 0

jshao(不会就得问)   :能否把整个程序发到我邮箱woqxb@21cn.com谢谢!Top

8 楼jshao(临渊羡鱼,不如退而结网)回复于 2003-06-03 08:28:33 得分 0

发过去了Top

9 楼guangxiluye(碧绿)回复于 2003-06-03 08:43:52 得分 0

收到了,为什么"创建文件夹"老出错?这个"创建文件夹"是什么意思呢?是不是指我上传到服务器中的文件夹?Top

10 楼jshao(临渊羡鱼,不如退而结网)回复于 2003-06-03 08:47:19 得分 0

那个你不管它的,那是我的其他的一个程序,你可以把它去掉Top

11 楼czp98069806(车到山前是死路)回复于 2003-06-03 08:48:32 得分 0

对Top

12 楼sworldfish()回复于 2003-06-03 08:52:54 得分 0

能不能给我也发一个啊,我的邮箱是:nbzhou0429@163.comTop

13 楼guangxiluye(碧绿)回复于 2003-06-03 09:10:07 得分 0

好,谢谢!Top

相关问题

  • 急需源程序!!高分求购!!
  • asp后台管理源程序(可上传图片并带html编辑器)100分
  • 怎样注释多行ASP源程序?
  • 关于asp源程序加密
  • ??谁有语音拨号的源程序!!!小弟急需。。谢谢。
  • 谁有VB6自带的VISDATA的源程序,急需
  • 急需小的局域网聊天软件源程序
  • 急需获取CUP序列号的VC源程序
  • 急急......急需代理服务器的资料和源程序!
  • 急需一物流管理方面的源程序!--------还可以在加分!

关键词

  • 文件
  • 上传

得分解答快速导航

  • 帖主:guangxiluye
  • jshao

相关链接

  • Web开发类图书

广告也精彩

反馈

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