HttpPostedFile和HtmlInputFile有什么区别
HttpPostedFile和HtmlInputFile有什么区别这两个有什么区别怎么两个不可以进行转换...
HttpPostedFile和HtmlInputFile有什么区别这两个有什么区别
怎么两个不可以进行转换 展开
怎么两个不可以进行转换 展开
展开全部
使用ASP.NET 制作一个可以存放Client 端档案的网页相当容易,因为ASP.NET 里就有提供我们将Client 端档案传至Server 端的对象,这个对象就是HtmlInputFile 对象。HtmlInputFile 对象必须存在窗体中,而且窗体<Form> 标注中必须加入设定Enctype="Multipart/Form-Data" 属性才可使用。HtmlInputFile 对象的语法如下所示:
<Input Type="File" Id="被程序所控制的名称" Runat="Server">
当一个档案传送到Server 端后,接收和处理的是HtmlInputFile 对象的PostedFile 属性。PostedFile 属性的型态是HttpPostedFile 对象类别,其常用属性如下表所示:
属性 说明 型态
ContentLength 传回上传文件的长度单位byte Integer
ContentType 传回上传文件的类型 String
FileName 传回client端上传文件的名称,
具有完整的路径如c:\aa\aa.txt String
其常用方法如下表所示:
方法 说明 语法
SaveAs() 将客户端上传的文件存在服务器的磁盘中 SaveAs(ByVal Filename As String )
基本档案上传
下列范例使用HtmlInputFile 对象的基本用法,分别印出档案的名称、大小、类型:
<Html>
<Form Enctype="Multipart/Form-Data" Runat="Server">
<Input Type="File" Id="UpLoad" Runat="Server">
<Asp:Button Id="Button1" Text="OK" OnClick="Button1_Click"
Runat="Server" /><br>
<Asp:Label Id="Label1" Runat="Server" />
</Form>
<Script Language="VB" Runat="Server">
Sub Button1_Click(Sender As Object,e As Eventargs)
Dim strContent As String
If UpLoad.PostedFile.ContentLength<0 Then
Label1.Text="上传失败"
Else
strContent="文件名称:" & UpLoad.PostedFile.FileName
strContent=strContent & "<br>档案大小:" & _
Cstr(UpLoad.PostedFile.ContentLength) & "Bytes"
strContent=strContent & "<br>档案类型:" &
UpLoad.PostedFile.ContentType
End If
Label1.Text=strContent
End Sub
</Script>
</Html>
存入磁盘
上传档案后若要写入磁盘中也相当容易,只要使用PostedFile 的SaveAs 方法即可。档案写入时若直接将PostedFile.FileName 属性来当文件名写入会有问题,因为FileName 属性包含有档案的路径名称,所以必须先将档案的路径分开。下列范例使用Split 函数来取得文件名称,并将档案存放到网页所在的目录:
<Html>
<Form Enctype="Multipart/Form-Data" Runat="Server">
<Input Type="File" Id="UpLoad" Runat="Server">
<Asp:Button Id="Button1" Text="OK" OnClick="Button1_Click"
Runat="Server" /><br>
<Asp:Label Id="Label1" Runat="Server" />
</Form>
<Script Language="VB" Runat="Server">
Sub Button1_Click(Sender As Object,e As Eventargs)
Dim strContent As String
If UpLoad.PostedFile.ContentLength>0 Then
strContent="文件名称:" & UpLoad.PostedFile.FileName
strContent=strContent & "<br>档案大小:" &
Cstr(UpLoad.PostedFile.ContentLength) & "Bytes"
strContent=strContent & "<br>档案类型:" &
UpLoad.PostedFile.ContentType
Dim Temp() As String = Split(UpLoad.PostedFile.FileName, "\" )
Dim Name As String = Temp(Temp.Length-1)
UpLoad.PostedFile.SaveAs(Server.MapPath(".") & "\" & Name)
Label1.Text=strContent
Else
Label1.Text="上传失败"
End If
End Sub
</Script>
</Html>
Split 函数会将一个字符串以我们设定的条件为分隔,并将分段后的字符串存至一个字符串数组中;所以我们只要以"\" 为条件来分隔档案,在字符串数组中的最后一个元素即为文件名称。
多档上传
我们也可以一次上传多个档案。管理档案的对象是Request 对象的Files 属性,它的型别是HttpFileCollection 集合对象类别,它的项目成员是HttpPostedFile 类别对象。HttpFileCollection型别变量的常用属性如下表所示:
属性 说明 型态
ALL 传回全部的HttpPostedFile类型对象 HttpPostedFile()
AllKeys 传回全部的HtmlInputFile控件的名称 String()
Item 以HtmlInputFile 控件的名称传回 Item(String)As HttpPostedFile
Item(Integer)As HttpPostedFile
其常用方法如下表所示:
方法 说明 参数
Get 以HtmlInputFile对象名称或索引传回 Get(String)As
HttpPostedFile对象 HttpPostedFile
Get(Integer)As
HttpPostedFile
GetKey 以索引值在集合中传回HttpPostedFile对象 GetKey(Integer)As
HttpPostedFile
下列范例中我们放了两个HtmlInputFile 对象,并上传两个档案:
<Html>
<Form Enctype="Multipart/Form-Data" Runat="Server">
<Input Type="File" Id="UpLoad1" Runat="Server"><br>
<Input Type="File" Id="UpLoad2" Runat="Server">
<Asp:Button Id="Button1" Text="OK" OnClick="Button1_Click"
Runat="Server"/><br>
<Asp:Label Id="Label1" Runat="Server"/>
</Form>
<Script Language="VB" Runat="Server">
Sub Button1_Click(Sender As Object,e As EventArgs)
Dim shtI As short
Dim strContent As String
Dim Files As HttpFileCollection
Files=Request.Files
For shtI=0 To Files.Count-1
If Files.Item(shtI).ContentLength>0 Then
strContent=strContent & "第" & Cstr(shtI+1) & "个档案上传对象
<br>"
strContent=strContent & "文件名称:" & Files.Item(shtI).FileName
& "<br>"
strContent=strContent & "档案大小:" &
Cstr(Files.Item(shtI).ContentLength)_
& "Byte<br>"
strContent=strContent & "档案类型:" &
Files.Item(shtI).ContentType & "<p>"
Dim Temp() As String = Split( Files.Item(shtI).FileName, "\")
Dim Name As String = Temp(Temp.Length-1)
Files.Item(shtI).SaveAs(Server.MapPath(".") & "\" & Name)
End If
Next
Label1.Text=strContent
End Sub
</Script>
</Html>
上述范例中我们先定义一个HttpFileCollection 类型变量Files,并将Request.Files 属性的内容放到Files 变量中。再使用For....Next 循环将档案信息加入strContent 变量中,再以Split 函数将档案路径和文件名称分开并且存到一数组,因数组的最后一个元素即为文件名称,因此个别取出后使用HttpPostedFile 对象的SaveAs 方法将档案写入磁盘。
<Input Type="File" Id="被程序所控制的名称" Runat="Server">
当一个档案传送到Server 端后,接收和处理的是HtmlInputFile 对象的PostedFile 属性。PostedFile 属性的型态是HttpPostedFile 对象类别,其常用属性如下表所示:
属性 说明 型态
ContentLength 传回上传文件的长度单位byte Integer
ContentType 传回上传文件的类型 String
FileName 传回client端上传文件的名称,
具有完整的路径如c:\aa\aa.txt String
其常用方法如下表所示:
方法 说明 语法
SaveAs() 将客户端上传的文件存在服务器的磁盘中 SaveAs(ByVal Filename As String )
基本档案上传
下列范例使用HtmlInputFile 对象的基本用法,分别印出档案的名称、大小、类型:
<Html>
<Form Enctype="Multipart/Form-Data" Runat="Server">
<Input Type="File" Id="UpLoad" Runat="Server">
<Asp:Button Id="Button1" Text="OK" OnClick="Button1_Click"
Runat="Server" /><br>
<Asp:Label Id="Label1" Runat="Server" />
</Form>
<Script Language="VB" Runat="Server">
Sub Button1_Click(Sender As Object,e As Eventargs)
Dim strContent As String
If UpLoad.PostedFile.ContentLength<0 Then
Label1.Text="上传失败"
Else
strContent="文件名称:" & UpLoad.PostedFile.FileName
strContent=strContent & "<br>档案大小:" & _
Cstr(UpLoad.PostedFile.ContentLength) & "Bytes"
strContent=strContent & "<br>档案类型:" &
UpLoad.PostedFile.ContentType
End If
Label1.Text=strContent
End Sub
</Script>
</Html>
存入磁盘
上传档案后若要写入磁盘中也相当容易,只要使用PostedFile 的SaveAs 方法即可。档案写入时若直接将PostedFile.FileName 属性来当文件名写入会有问题,因为FileName 属性包含有档案的路径名称,所以必须先将档案的路径分开。下列范例使用Split 函数来取得文件名称,并将档案存放到网页所在的目录:
<Html>
<Form Enctype="Multipart/Form-Data" Runat="Server">
<Input Type="File" Id="UpLoad" Runat="Server">
<Asp:Button Id="Button1" Text="OK" OnClick="Button1_Click"
Runat="Server" /><br>
<Asp:Label Id="Label1" Runat="Server" />
</Form>
<Script Language="VB" Runat="Server">
Sub Button1_Click(Sender As Object,e As Eventargs)
Dim strContent As String
If UpLoad.PostedFile.ContentLength>0 Then
strContent="文件名称:" & UpLoad.PostedFile.FileName
strContent=strContent & "<br>档案大小:" &
Cstr(UpLoad.PostedFile.ContentLength) & "Bytes"
strContent=strContent & "<br>档案类型:" &
UpLoad.PostedFile.ContentType
Dim Temp() As String = Split(UpLoad.PostedFile.FileName, "\" )
Dim Name As String = Temp(Temp.Length-1)
UpLoad.PostedFile.SaveAs(Server.MapPath(".") & "\" & Name)
Label1.Text=strContent
Else
Label1.Text="上传失败"
End If
End Sub
</Script>
</Html>
Split 函数会将一个字符串以我们设定的条件为分隔,并将分段后的字符串存至一个字符串数组中;所以我们只要以"\" 为条件来分隔档案,在字符串数组中的最后一个元素即为文件名称。
多档上传
我们也可以一次上传多个档案。管理档案的对象是Request 对象的Files 属性,它的型别是HttpFileCollection 集合对象类别,它的项目成员是HttpPostedFile 类别对象。HttpFileCollection型别变量的常用属性如下表所示:
属性 说明 型态
ALL 传回全部的HttpPostedFile类型对象 HttpPostedFile()
AllKeys 传回全部的HtmlInputFile控件的名称 String()
Item 以HtmlInputFile 控件的名称传回 Item(String)As HttpPostedFile
Item(Integer)As HttpPostedFile
其常用方法如下表所示:
方法 说明 参数
Get 以HtmlInputFile对象名称或索引传回 Get(String)As
HttpPostedFile对象 HttpPostedFile
Get(Integer)As
HttpPostedFile
GetKey 以索引值在集合中传回HttpPostedFile对象 GetKey(Integer)As
HttpPostedFile
下列范例中我们放了两个HtmlInputFile 对象,并上传两个档案:
<Html>
<Form Enctype="Multipart/Form-Data" Runat="Server">
<Input Type="File" Id="UpLoad1" Runat="Server"><br>
<Input Type="File" Id="UpLoad2" Runat="Server">
<Asp:Button Id="Button1" Text="OK" OnClick="Button1_Click"
Runat="Server"/><br>
<Asp:Label Id="Label1" Runat="Server"/>
</Form>
<Script Language="VB" Runat="Server">
Sub Button1_Click(Sender As Object,e As EventArgs)
Dim shtI As short
Dim strContent As String
Dim Files As HttpFileCollection
Files=Request.Files
For shtI=0 To Files.Count-1
If Files.Item(shtI).ContentLength>0 Then
strContent=strContent & "第" & Cstr(shtI+1) & "个档案上传对象
<br>"
strContent=strContent & "文件名称:" & Files.Item(shtI).FileName
& "<br>"
strContent=strContent & "档案大小:" &
Cstr(Files.Item(shtI).ContentLength)_
& "Byte<br>"
strContent=strContent & "档案类型:" &
Files.Item(shtI).ContentType & "<p>"
Dim Temp() As String = Split( Files.Item(shtI).FileName, "\")
Dim Name As String = Temp(Temp.Length-1)
Files.Item(shtI).SaveAs(Server.MapPath(".") & "\" & Name)
End If
Next
Label1.Text=strContent
End Sub
</Script>
</Html>
上述范例中我们先定义一个HttpFileCollection 类型变量Files,并将Request.Files 属性的内容放到Files 变量中。再使用For....Next 循环将档案信息加入strContent 变量中,再以Split 函数将档案路径和文件名称分开并且存到一数组,因数组的最后一个元素即为文件名称,因此个别取出后使用HttpPostedFile 对象的SaveAs 方法将档案写入磁盘。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询