[VB][ASP.NET]FileUpload控件「批次上传 / 多档案同时上传」的范例

FileUpload控件「批次上传 / 多档案同时上传」的范例 (VB语法)

 http://www.dotblogs.com.tw/mis2000lab/archive/2008/05/14/3986.aspx

 

 

 

 

FileUpload控件真的简单好用,不使用它来作批次上传,却要改用别的方法,实在不聪明。要用就一次用到底,

公开FileUpload控件「批次上传」的范例,千万不能错过。

     

 

首先,进行HTML画面的设计,根据上图,在画面上使用多个 FileUpload控件,然后搭配一个按钮控件即可

除此以外,范例 8_Multi_Upload.aspx还加入了「避免上传同名档案」的功能(本范例共有三种子功能,其中沿用本章之前介绍的两个范例),可以说是把本章的各种范例作一个大融合。

(本文于2008/10/14修改)以下是后置程序代码:

 

    Protected Sub Button1_Click()Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        '--批注:网站上的目录路径。所以不写磁盘名称(不写 “实体”路径)。
        Dim saveDir As String = "\[Book]FileUpload\Uploads\"
        Dim appPath As String = Request.PhysicalApplicationPath

        Dim tempfileName As String = Nothing
        Dim myLabel As New System.Text.StringBuilder

        Dim i As Integer        

        For i = 1 To (Request.Files.Count)
            Dim myFL As New FileUpload
            myFL= CType(Page.FindControl("FileUpload" & i), FileUpload)


            If (myFL.HasFile) Then
                Dim fileName As String = myFL.FileName
                Dim pathToCheck As String = appPath & saveDir & fileName

                '========================================(Start)
                If (System.IO.File.Exists(pathToCheck)) Then
                    Dim my_counter As Integer = 2
                    Dim error_msg As String = Nothing

                    While (System.IO.File.Exists(pathToCheck))
                        ' --档名相同的话,目前上传的档名(改成 tempfileName),前面会用数字来代替。
                        tempfileName= my_counter.ToString & "_"& fileName
                        pathToCheck= appPath & saveDir & tempfileName
                        my_counter= my_counter + 1
                    End While

                    fileName= tempfileName
                    error_msg= error_msg & "<br>抱歉,您上传的档名发生冲突,档名修改--- " & fileName
                    Label1.Text= error_msg

                End If

                ' –完成档案上传的动作。
                Dim savePath As String = appPath & saveDir & fileName
                myFL.SaveAs(savePath)
                '========================================(End)
                myLabel.Append("<hr>檔名---- " & fileName)
            End If
        Next

        Label2.Text= "上传成功" & myLabel.ToString
    End Sub

 

本范例, C#的语法在此 ---- [C#]FileUpload控件「批次上传 / 多档案同时上传」的范例

 

ASP.NET案例精编(清华大学出版社 / 作者MIS2000Lab)

http://www.china-pub.com/46063 

2009/5/15上市

市场价 :¥59.80 RMB(人民幣)

 

ASP.NET案例精编--适用于VS2005/2008

   

 

 --------------------------------------------------------------------------------------------------------------------------------------------

Nick网友修改后的范例:Project.rar

 

 ...........................................................................................................................................................

本书的相关范例,还有----

  • 避免上传的「档名」重复。会自动修改档名并且提示。
  • 限制上传档案的大小(用程控、或是透过Web.Config设定档来作)
  • 限制上传档案的「扩展名」
  • 限制上传时,Server端的目录(避免上传到其它目录,有安全疑虑)

这些都是常用、网络上最常问到的范例,本书通通有~

 

 

 

请注意档案上传的风险,请看:

检 查上传档案扩展名真的有效吗?分析 IIS6 扩展名解析弱点!!

 

 

 

补充----

 

 

 

 

转载于:https://www.cnblogs.com/mis2000lab/archive/2010/10/18/2008_05_14_3986_FileUpload_VB.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值