当要使用文件上传时,如果每次都要使用控件名去saveas的话,代码的编写会很长,如果可以使用遍历的方法的话,则多文件上传可以用一个循环语句完成。
.net使用request.files来表示从客户端回传来的文件。
它的属性有
request.files.count表示上传了几个文件。
用request.files[]就表示原先的 file控件名。所以request.files的属性就是file控件的属性。
httppostedfile表示回传的文件类。因为我们可能要建立一个对象去代表回传的对象。此时可以用
HttpPostedFile f=Request.Files[n];
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns="http://www.w3.org/1999/xhtml " >
<head id="Head1" runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<br />
<input id="File1" type="file" runat="server" />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</form>
</body>
</html>
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text.RegularExpressions;
using System.IO;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
HttpPostedFile f = Request.Files[0];
f.SaveAs(Server.MapPath("001.jpg"));
}
}