电脑教程中文网
首页  动态网站建设学习 程序  笑话  论坛 娱乐  交友 ADSL  峄城  成功者
中文名:电脑教程中文网,收集了大量的电脑教程! 编程技术文档 游戏开发 笑话站暂时关闭 设为首页
网页设计 HTML | Dreamweaver | CSS | Firework | FrontPage WEB开发 ASP | JSP | PHP | .NET | CGI | JS | VBS | XML | IIS6 | Apache | PWS
程序设计 Java | C++ |VC++ | C# | Delphi | VB | C语言 | 汇编 | Pascal | Perl 数据库 MSSQL | MySQL | Access | VF | Oracle | DB2 | SYBASE |
办公软件 Word | Excel | WPS | PowerPoint 动画平面 Photoshop | ACDSee | 3Dmax | Flash | Coreldraw |
操作系统 Windows 2000 | Windows XP | Windows 2003 | SCO Unix | Windows Vista | unix、Linux | 综合| 服务器 | 系统安全| 黑客技术
其  他 UltraDev | DOS | UML | PWS | Powerbuilder | 开发心得 | 设计理念 | 病毒库 | 其他 | LightTPD (分类排序给您带来不便请谅解)
推  荐: Java文档500篇》《ASP.NET与相关数据库技术高级指南》《TC图形函数详解》《C函数速查手册》《C语言编程宝典之一》《MFC深入浅出》《黑客零起点》《VC++ 编程指南》《JScript 用户指南》 《CSS教程宝典》《Microsoft Jet SQL 参考》《delphi技巧集合》《MySQL 4.1.0 中文参考手册》《MySQL中文手册
【导航】 您现在的位置 : 首页 - NET教程 - 《.NET入门基础教程收集》- 档案上传处理

档案上传处理

日期:2005-8-20 11:34:59    作者:佚名   人气:   来源:网络





    使用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 对象类别,其常用属性如下表所示:


其常用方法如下表所示:



基本档案上传
下列范例使用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型别变量的常用属性如下表所示:



其常用方法如下表所示:



下列范例中我们放了两个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 方法将档案写入磁盘。  




网站首页 - 友情链接 - 公司简介 - 联系方式 - 广告投放 - 客户服务 - 错误报告 - 免责声明 - About us
CLDE.NET电脑教程中文网版权所有 未经许可禁止镜象和复制本站资料 MSN:CLDE_NET@hotmail.com
技术支持:CLDE.NET信息中心 鲁ICP备05039940号 友情链接QQ:784079(隐)