如何在ASP.NET里用HtmlInputFile控件来上载文件。

(華版)

以前要在ASP里上载文件真的要写一大堆程序。。。比如说把文件分段转换成Base64然后才上载到服务器,而在服务器那边由要从Base64转会原本的byte值才可以分段写如文件中。但是在ASP.NET里就完全只需用一行代码加一个HtmlInputFile控件就能做完这些复杂的程序。

而要注意的就是紧记在包含HtmlInputFile控件的Form里多添加一个enctype的属性,enctype="multipart/form-data";然后再用HtmlInputFile控件里的PostedFile.SaveAs方法来上载文件就可以了。

  o_FileUpload.jpg

None.gif < form  id ="Form1"  method ="post"  runat ="server"  enctype ="multipart/form-data" >
None.gif  
None.gif
</ form >

None.gif          ' 声明变量
None.gif
         Dim  filename  As   String
None.gif        
Dim  data()  As   String
None.gif
None.gif        
Try
None.gif            
' 检查所选文件大小
None.gif
             If  PostFileName.PostedFile.ContentLength  =   0   Then
None.gif                
' 显示上载结果
None.gif
                Label3.Text  =   " 上载失败!"
None.gif
             Else
None.gif                
' 显示所选文件资料
None.gif
                Label2.Text  =   " 文件大小: "   &  PostFileName.PostedFile.ContentLength  &   "  bytes<br>"
None.gif
                Label2.Text  =  Label2.Text  &   " 文件类型: "   &  PostFileName.PostedFile.ContentType  &   " <br>"
None.gif
                Label2.Text  =  Label2.Text  &   " 文件名称: "   &  PostFileName.PostedFile.FileName  &   " <br>"
None.gif

None.gif
                 ' 读取文件名称
None.gif
                data  =   Split (PostFileName.PostedFile.FileName,  " \ " )
None.gif                
' 上载文件到服务器
None.gif
                PostFileName.PostedFile.SaveAs(Server.MapPath( " . " &   " \ "   &  data( UBound (data)))
None.gif
None.gif                
' 显示上载结果
None.gif
                 With  Label3
None.gif                    .Text 
=   " 上载成功!"
None.gif
                    .ForeColor  =  Color.DarkGreen
None.gif                
End   With
None.gif            
End   If
None.gif        
Catch  ex  As  Exception
None.gif            
' 显示错误讯息
None.gif
             With  Label3
None.gif                .Text 
=   " Error:  "   &  ex.Message
None.gif                .ForeColor 
=  Color.Red
None.gif            
End   With
None.gif        
End   Try

整体来说,最为麻烦的也不过是要从PostedFile.FileName里读取真整的文件名称(不包括括file path);不过这也大可用以下的简短代码来完成。

None.gif ' 读取文件名称
None.gif
data  =   Split (PostFileName.PostedFile.FileName,  " \ " )
None.gif
' 文件名称
None.gif
Debug. Print  data( UBound (data))

如果要上载多个文件(为可更有效的重用代码),那可以用Request.File来读取每一个所选的文件名称;就如以下的代码。

None.gif          ' 声明变量
None.gif
         Dim  lIndex  As   Integer
None.gif        
Dim  lCount  As   Integer
None.gif        
Dim  hpf  As  HttpPostedFile
None.gif        
Dim  filename  As   String
None.gif        
Dim  data()  As   String
None.gif
None.gif        
Try
None.gif            
' 读取所有要上载文件的数目
None.gif
            lCount  =  Request.Files.Count
None.gif
None.gif            
' 读取每一个上载文件的资料
None.gif
             For  lIndex  =   0   To  lCount  -   1
None.gif                
' 读取第N个上载文件的资料
None.gif
                hpf  =  Request.Files(lIndex)
None.gif
None.gif                
' 检查所选文件大小
None.gif
                 If  hpf.ContentLength  =   0   Then
None.gif                    
' 显示所选文件资料
None.gif
                    Label2.Text  =  Label2.Text  &   " <br> "   &   " 文件大小: "   &  hpf.ContentLength  &   "  bytes<br>"
None.gif
                    Label2.Text  =  Label2.Text  &   " 文件类型: "   &  hpf.ContentType  &   " <br>"
None.gif
                    Label2.Text  =  Label2.Text  &   " 文件名称: "   &  hpf.FileName  &   " <br>"
None.gif

None.gif
                     ' 读取文件名称
None.gif
                    data  =   Split (hpf.FileName,  " \ " )
None.gif                    
' 上载文件到服务器
None.gif
                    PostFileName.PostedFile.SaveAs(Server.MapPath( " . " &   " \ "   &  data( UBound (data)))
None.gif
None.gif                    
' 显示上载结果
None.gif
                     With  Label3
None.gif                        .Text 
=   " 上载成功!"
None.gif
                        .ForeColor  =  Color.DarkGreen
None.gif                    
End   With
None.gif                
End   If
None.gif
None.gif                
' 释放资源
None.gif
                hpf  =   Nothing
None.gif            
Next
None.gif        
Catch  ex  As  Exception
None.gif            
' 显示错误讯息
None.gif
             With  Label3
None.gif                .Text 
=   " Error:  "   &  ex.Message
None.gif                .ForeColor 
=  Color.Red
None.gif            
End   With
None.gif        
End   Try

點撃下載代碼

转载于:https://www.cnblogs.com/hackzai/archive/2005/04/28/146637.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值