惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
月光博客
月光博客
The Last Watchdog
The Last Watchdog
T
Tenable Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
Simon Willison's Weblog
Simon Willison's Weblog
V
Vulnerabilities – Threatpost
F
Fortinet All Blogs
Microsoft Security Blog
Microsoft Security Blog
A
Arctic Wolf
云风的 BLOG
云风的 BLOG
Know Your Adversary
Know Your Adversary
P
Palo Alto Networks Blog
GbyAI
GbyAI
阮一峰的网络日志
阮一峰的网络日志
The GitHub Blog
The GitHub Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
MyScale Blog
MyScale Blog
B
Blog
Spread Privacy
Spread Privacy
S
Schneier on Security
Project Zero
Project Zero
L
LINUX DO - 热门话题
M
MIT News - Artificial intelligence
F
Full Disclosure
WordPress大学
WordPress大学
Apple Machine Learning Research
Apple Machine Learning Research
Cyberwarzone
Cyberwarzone
AWS News Blog
AWS News Blog
aimingoo的专栏
aimingoo的专栏
博客园 - 三生石上(FineUI控件)
C
Cybersecurity and Infrastructure Security Agency CISA
Hugging Face - Blog
Hugging Face - Blog
Security Latest
Security Latest
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Tailwind CSS Blog
K
Kaspersky official blog
Recent Announcements
Recent Announcements
NISL@THU
NISL@THU
Cisco Talos Blog
Cisco Talos Blog
S
Securelist
P
Privacy & Cybersecurity Law Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
The Exploit Database - CXSecurity.com
V
Visual Studio Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Webroot Blog
Webroot Blog

博客园 - 克仔

克仔嘅第一次。。。“浮潜” Exact ADC之Paintball大戦 - 克仔 - 博客园 .NET Compact Framework里的DateTimePicker Control显示錯误的month selection list .NET CF v1的Form.ShowDialog(Me)里的Me在不能用了! .NET CF里的toolbar image在Windows Mobile 2003 SE消失了。 先嚟為《達文西的密碼》電影熱熱身。 汽油起價 - 加油站車龍。 我嘅第一部O2 Xda ll mini 《達文西的密碼》登上大银幕 Single Instance Appplication in .NET CF 丹•布朗 《數字城堡》 全新ARM base PocketPC 2003 Emulator Beta 已登場。 向左走,向右走? 全新旅途。。。 達文西的密碼 - 後記。 達文西的密碼。 如何用ASP.NET里的State Management Database来储存Session Variable。 如何用DataSet.GetChanges来提升数据库资料更新效率。 如何用SqlConnection类的InfoMessage事件来显示Stored Procedure的PRINT讯息。 Deamon Tool
如何在ASP.NET里用HtmlInputFile控件来上载文件。
克仔 · 2005-04-28 · via 博客园 - 克仔

(華版)

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

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

 

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

        '声明变量
        Dim filename As String
        
Dim data() As String

        
Try
            
'检查所选文件大小
            If PostFileName.PostedFile.ContentLength = 0 Then
                
'显示上载结果
                Label3.Text = "上载失败!"
            Else
                
'显示所选文件资料
                Label2.Text = "文件大小:" & PostFileName.PostedFile.ContentLength & " bytes<br>"
                Label2.Text = Label2.Text & "文件类型:" & PostFileName.PostedFile.ContentType & "<br>"
                Label2.Text = Label2.Text & "文件名称:" & PostFileName.PostedFile.FileName & "<br>"

                '读取文件名称
                data = Split(PostFileName.PostedFile.FileName, "\")
                
'上载文件到服务器
                PostFileName.PostedFile.SaveAs(Server.MapPath("."& "\" & data(UBound(data)))

                
'显示上载结果
                With Label3
                    .Text 
= "上载成功!"
                    .ForeColor = Color.DarkGreen
                
End With
            
End If
        
Catch ex As Exception
            
'显示错误讯息
            With Label3
                .Text 
= "Error: " & ex.Message
                .ForeColor 
= Color.Red
            
End With
        
End Try

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

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

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

        '声明变量
        Dim lIndex As Integer
        
Dim lCount As Integer
        
Dim hpf As HttpPostedFile
        
Dim filename As String
        
Dim data() As String

        
Try
            
'读取所有要上载文件的数目
            lCount = Request.Files.Count

            
'读取每一个上载文件的资料
            For lIndex = 0 To lCount - 1
                
'读取第N个上载文件的资料
                hpf = Request.Files(lIndex)

                
'检查所选文件大小
                If hpf.ContentLength = 0 Then
                    
'显示所选文件资料
                    Label2.Text = Label2.Text & "<br>" & "文件大小:" & hpf.ContentLength & " bytes<br>"
                    Label2.Text = Label2.Text & "文件类型:" & hpf.ContentType & "<br>"
                    Label2.Text = Label2.Text & "文件名称:" & hpf.FileName & "<br>"

                    '读取文件名称
                    data = Split(hpf.FileName, "\")
                    
'上载文件到服务器
                    PostFileName.PostedFile.SaveAs(Server.MapPath("."& "\" & data(UBound(data)))

                    
'显示上载结果
                    With Label3
                        .Text 
= "上载成功!"
                        .ForeColor = Color.DarkGreen
                    
End With
                
End If

                
'释放资源
                hpf = Nothing
            
Next
        
Catch ex As Exception
            
'显示错误讯息
            With Label3
                .Text 
= "Error: " & ex.Message
                .ForeColor 
= Color.Red
            
End With
        
End Try

點撃下載代碼