在 ASP 中上传文件是一项较为复杂的任务,需要先分析上传文件的数据格式,再根据此格式提取上传的文件。
在 ASP.NET 中却只需要一句。
- PostedFile.ContentLength 属性(int),文件大小
- PostedFile.ContentType 属性(string),文件类型
- PostedFile.FileName 属性(string),上传文件名
- PostedFile.SaveAs 方法(无返回值,参数为目标文件名),保存文件
示例
<%@ Page Language="C#" %>
<script runat="server">
void Upload(object sender, EventArgs e)
{
if (atch.PostedFile.ContentLength > 0)
{
//上传的文件中有内容
lbContentLength.Text = atch.PostedFile.ContentLength.ToString(); //由于 ContentLength 是 int 类型,为了类型匹配,这里要使用 ToString()
lbContentType.Text = atch.PostedFile.ContentType;
lbFileName.Text = atch.PostedFile.FileName;
atch.PostedFile.SaveAs(Server.MapPath("foo.jpg"));
}
else
{
lbContentLength.Text = "";
lbContentType.Text = "";
lbFileName.Text = "";
}
}
</script>
<!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 runat="server">
<title>ASP.NET 中上传文件</title>
</head>
<body>
<form id="form1" runat="server">
<div>
请选择一个 JPG 图片:<asp:FileUpload ID="atch" runat="server" />
<asp:Button ID="btnUpload" runat="server" Text="上传" OnClick="Upload" />
</div>
<div>文件大小:<asp:Label ID="lbContentLength" runat="server"></asp:Label></div>
<div>文件类型:<asp:Label ID="lbContentType" runat="server"></asp:Label></div>
<div>上传文件名:<asp:Label ID="lbFileName" runat="server"></asp:Label></div>
</form>
</body>
</html>
相关阅读