思维的乐趣

Enjoy it
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

WEB程序中的文件上传

Posted on 2010-05-06 15:35  szh114  阅读(359)  评论(0编辑  收藏  举报

文件上传功能在客户端的部分,用单纯的HTML实现的话,代码如下:

 

代码
1 <html>
2 <head>
3 <title>
4 this is a test page for file upload!
5 </title>
6 </head>
7 <body>
8 <form enctype="multipart/form-data">
9 <input type="file"/>
10 <input type="submit" value="upload"/>
11 </form>
12 </body>
13  </html>

 

 

当点击按钮的时候,FORM就会被回送的服务器端,

(在这背后,浏览器与HTTP协议,或者TCP/IP之间发生了什么事情?然后客户端跟SERVER端之间又发生了什么事情?)这部分好像追问得过于底层了。

这个FORM被回送后,SERVER端倒底得到了什么?又如何建立连接,得到真实的上传文件数据呢?

这一部分的话,应该是取决于各个不同的SERVER端,不同的SERVER端编程语言的实现方式了。

 

ASP.NET中,关于文件上传,有一个asp:FileUpload控件,今天我的目标,就是要搞清楚这个控件的用法,

这个控件在接收到文件后,可以把文件保存在文件系统或者数据库中。

关键代码为:

ASPX页面上的一个控件,加一个表单提交的BUTTON,如下:

        <asp:FileUpload ID="fuTest" runat="server" />
        <asp:Button ID="btUpload" runat="server" Text="Upload" OnClick="btUpload_Click" />

 

然后这个BUTTON的按下响应函数如下:

        protected void btUpload_Click(object sender, EventArgs e)
        {
            if (fuTest.HasFile)
            {
                String filePath = "~/UploadFiles/" + fuTest.FileName;
                fuTest.SaveAs(MapPath(filePath));
            }
        }

 

这样子,就实现了,将一个文件上传到SERVER端的功能。至于如何保存到数据库中,如何控制不同的上传文件类型,这个以后再补充。

 

相关文档:HTML中文件上传与上传进度跟踪的原理分析

asp.net 多文件上传