您现在的位置是:网站首页> 编程资料编程资料

利用SA FileUp组件进行多文件上传_ASP基础_

2023-05-25 225人已围观

简介 利用SA FileUp组件进行多文件上传_ASP基础_

大家可以根据自己的实际情况进行修改,特别是数据库操作部分。
============================================
利用稻香老农的无组件进行多文件上传
请见:
http://bbs.blueidea.com/viewthread.php?tid=1249535
==================================================
本例属于文件和表单项的混合提交。

简单说明:
虽然重点在处理页上,但我觉得有必要介绍一下表单的项目。
本例是相册里像片的上传。
其中的groupID是隐藏域传递的大类的ID
其中的albumID是隐藏域传递的小类的ID
file1-->>file5是文件
photoTitle1-->>photoTitle5 是像片的标题
photoIntro1-->>photoIntro5 是像片的简介
photoWidth1-->>photoWidth5 是像片的宽度
photoHeight1-->>photoHeigth5 是像片的高度
photoSize1-->>photoSize5 是像片的大小。

注意:因本人没有声明变量的习惯,所以大家要是强制声明变量的话,就得自己加了。
===========================================

提交页:主要代码如下
enctype="multipart/form-data" onSubmit="return checkForm();">

name="groupID" type="hidden" id="groupID" value="<%=groupID%>" size="10">
name="albumID" type="hidden" id="albumID" value="<%=albumID%>" size="10">

  上传说明:最多可以同时上传五个文件,其中标题最多30字,简介200字。


   
      
      
   
   
      
      

。。。。。。。

   
      
      
  
文件1            name="file1" type="file" class="myInput" size="20">
        宽: name="photoWidth1" type="text" class="input-disabled" id="photoWidth1" size="5" readonly="">
          高: name="photoHeight1" type="text" class="input-disabled" id="photoHeight1" size="5" readonly="">
          大小:name="fileSize1" type="text" class="input-disabled" id="fileSize1" size="5" readonly="">         
      

        标题: name="photoTitle1" type="text" class="myInput" id="photoTitle1" size="40">
         
        
        简介:
      

        
        
      


下面的script是我用来检查图片属性的。其中检查了图片的宽度,高度,大小,是否是图片。






  
   
  



photo_addphoto.js

 提示:您可以先修改部分代码再运行
===============
这里只写出了一个文件的相关输入框,其他四个类似。
说明一点,并不是有5 个的限制,只是我这里只写了5个。
其中的photo_addphoto.js在客户端对图片进行一遍检查,不是图片的会提示,大小超过限制的也会提示。
这样就避免了用户经过耐心的等待后才被告诉不合标准的烦恼。
=================================================
处理页代码:

<%@ CODEPAGE="936"%>
<%
Server.ScriptTimeOut=5000 '--脚本超时设置为5000
%>

<%
Set oFileUp = Server.CreateObject("SoftArtisans.FileUp") '--建立SA FileUp Object

'oFileUp.Path = Server.MapPath("/upfile/") '--我这里要自己定义文件名,所以没有使用Path属性,注意这句被注释掉了。


strRestrictBy = ""  '--文件验证方式,分为extension和ContentType

iCount=0  '--文件上传数的计数变量

formPath="upfile/"    '文件保存位置

'-----------检查是否有在此位置上传的权限-----------这里省略了。
groupID=trim(oFileUp.form("groupID"))
albumID=trim(oFileUp.form("albumID"))
'-----------检查权限完成------

if errMsg="" then   '----如果到此还没有错误
For Each strFormElement In oFileUp.Form
       If IsObject(oFileUp.Form(strFormElement)) Then  '如果是文件
              If Not oFileUp.Form(strFormElement).IsEmpty Then  '--文件不为空
                     flagOK=1
                     '--不是文件或文件大于限制,设置错误信息
                     If oFileUp.Form(strFormElement).TotalBytes<100  Then
                            flagOK=0
                     ElseIf oFileUp.Form(strFormElement).TotalBytes> upFileSize Then
                            flagOK=0
                            errMsg=errMsg+"文件:"&oFileUp.Form(strFormElement).UserFileName&" 大于"&upFileSize\1024&"KB!
"
                     Else
                            strShortFileName = mid(oFileUp.Form(strFormElement).UserFileName,InStrRev(oFileUp.Form(strFormElement).UserFileName, "\")+1)  '取得文件名
                            strExtension = Mid(strShortFileName, InStrRev(strShortFileName, "."))  '取得扩展名
                            If strRestrictBy = "extension" Then  '--验证方式为扩展名
                                   'strShortFileName = oFileUp.Form(strFormElement).ShortFileName
                                   '======检查后缀名====
                                   Select Case LCase(strExtension)
                                          Case ".jpg", ".gif", ".bmp",".png"

                                          Case Else
                                                 flagOK=0
                                                 oFileUp.Form(strFormElement).Delete
                                                 Response.Write("错误: 扩展名为 " & strExtension & " 的文件不能被上传。
")
                                   End Select
                            Else '--验证方式为MIME类型
                                   strContentType = oFileUp.Form(strFormElement).ContentType
                                   Select Case LCase(strContentType)
                                          Case "image/gif", "image/jpeg", "image/pjpeg"
                                          Case Else
                                                 flagOK=0
                                                 oFileUp.Form(strFormElement).Delete
                                                 Response.Write("错误: MIME类型为 " & strContentType & " 的文件不能被上传。
")
                                   End Select
                            End If '--end if 验证方式
                     End If 'end if 文件大小判断

                     If flagOK=1 Then  '如果文件通过检查,保存文件,并插入数据库纪录
                                          randomize
                                          ranNum=int(900*rnd)+100
                                          filename=year(now())&month(now())&day(now())&hour(now())&minute(now())&second(now())&ranNum&LCase(strExtension)
                                          oFileUp.Form(strFormElement).SaveInVirtual formPath&filename  '让文件名不重复,保存文件,这里用的是SaveInVirtual方法

                            
                                          '--输出服务器上的文件路径
                                          Response.Write oFileUp.Form(strFormElement).ServerName & ":ServerName
"

              

-六神源码网