如何在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#。

如何在ASP.net中处理从桌面应用程序上传的文件

在服务器端页面(顺便说一句,应该是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.
            }
         }
     }