如何在ASP.net中处理从桌面应用程序上传的文件
本文关键字:应用程序 应用 程序上 文件 桌面 ASP net 处理 | 更新日期: 2023-09-27 17:53:26
我使用WebClient.UploadFile
通过HTTP POST方法将文件上传到这种URL - http://example.com/file.aspx。
我如何获得该文件并将其保存到服务器上的特定位置?我应该在文件里面写什么代码。Aspx做这个?
当我搜索时,所有的例子都假设我使用了文件上传控件。但是,如何获取和保存通过HTTP POST发送的文件通常在ASP.Net中?
我正在使用c#,所以c#代码的例子将是伟大的。但我没有问题转换VB到c#。
在服务器端页面(顺便说一句,应该是ASHX而不是ASPX)中,使用Request.Files
集合。
例如:Request.Files[0].SaveAs(Server.MapPath("~/Something"))
我相信你会发现这篇MSDN文章适合你的需要。WebClient。还是方法您可以看到page_load如何用于处理嵌入在web客户端
的http请求中的文件。void Page_Load(object sender, EventArgs e) {
foreach(string f in Request.Files.AllKeys) {
HttpPostedFile file = Request.Files[f];
file.SaveAs("c:''inetpub''test''UploadedFiles''" + file.FileName);
}
}
看了@SLaks的评论后,我同意使用。ashx会是一个"更好"的结果。代码应该看起来像这样:
<%@ WebHandler Language="C#" Class="Handler" %>
using System;
using System.Web;
public class Handler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
foreach(string f in context.Request.Files.AllKeys)
{
HttpPostedFile file = context.Request.Files[f];
file.SaveAs("c:''inetpub''test''UploadedFiles''" + file.FileName);
// alternatively:
file.SaveAs(Path.Combine(Server.MapPath(@"'StorageFolder'",file.FileName);
//thanks @SLaks.
}
}
}