上传文件: 保存物理路径到博客。
保存文件: 利用FileUpload控件的SaveAs(string filename)方法,将上传文件保存到服务器上。
文件访问: 通过超链接形式,来访问。
步骤:
- 用HasFile判断是否上传了文件
- 在服务器上指定物理路径,并检查路径是否存在,如果不存在则先创建
- 用SaveAs方法保存上传的文件。
- 相对路径通过连接形式展示出来,点击即可查看文件,如果是rar等格式,点击后会出现下载提示。
详细代码如下:
创建一个Upload.aspx页面,代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Upload.aspx.cs" Inherits="WebApplication1.Upload" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>文件上传的例子</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="fileUpload" runat="server" />
<asp:Button ID="btnUpload" runat="server" OnClick="btnUpload_Click" Text="上传" />
<asp:Literal ID="literal" runat="server"></asp:Literal>
</div>
</form>
</body>
</html>
Upload.aspx.cs代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace WebApplication1
{
public partial class Upload : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnUpload_Click(object sender, EventArgs e)
{
//用HasFile,判断是否上传了文件
if(fileUpload.HasFile)
{
//指定上传文件在服务器上的保存路径
string savePath = Server.MapPath("~/upload/");
//检查服务器上是否存在这个物理路径,如果不存在则创建
if(!System.IO.Directory.Exists(savePath))
{
//需要注意的是,需要对这个物理路径有足够的权限,否则会报错
//另外,这个路径应该是在网站之下,而将网站部署在C盘却把上传文件保存在D盘
System.IO.Directory.CreateDirectory(savePath);
}
savePath = savePath + "\\" + fileUpload.FileName;
fileUpload.SaveAs(savePath);//用Save(),保存文件
//不过需要注意的是,在客户端访问却需要指定的是URL地址,而不是在服务器上的物理地 址
literal.Text = string.Format("<a href='upload/{0}'>upload/{0}</a>", fileUpload.FileName);
}
}
}
}