我正在尝试创建一个服务器页面(C#、asp.net 2.0+)来保存从另一个页面上传的文件。
具体来说, 我有一个带有
的 HTML 页面<form action="upload.aspx">
而且我不知道如何在 upload.aspx 中处理将文件保存到服务器上的问题。
我找到了几个例子(一个是:http://msdn.microsoft.com/en-us/library/aa479405.aspx)
但这需要 <input type=file>
元素在同一页上。
我无法在我的 upload.aspx 页面上抓取已发布的文件。
谁有什么指点?当文件从另一个页面发布时,如何在 aspx 中抓取发布的文件并将其保存到服务器?
非常感谢, 布雷特
最佳答案
1.创建Uploadfile.aspx,代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Uploadfile.aspx.cs" Inherits="Uploadfile" %>
<!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>File Upload Control</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:FileUpload runat="server" ID="fuSample" />
<asp:Button runat="server" ID="btnUpload" Text="Upload"
onclick="btnUpload_Click" />
<asp:Label runat="server" ID="lblMessage" Text=""></asp:Label>
</div>
</form>
</body>
</html>
2.创建Uploadfile.aspx.cs
,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Uploadfile : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnUpload_Click(object sender, EventArgs e)
{
//Files is folder Name, make sure it exists
fuSample.SaveAs(Server.MapPath("/Files") + "//" + fuSample.FileName);
lblMessage.Text = "File Successfully Uploaded";
}
}
3.创建一个新文件:demo.html
,代码如下所示,(使用iframe将Uploadfile.aspx嵌入到你的Html页面中)
<h3>Demo</h3>
<iframe height="40" width="700" src="Uploadfile.aspx">
</iframe>
4.访问 /demo.html
,现在您可以使用 UploadFiles.aspx 从 html 本身上传文件
关于c# - ASP.NET 文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3167240/