如何在asp.net应用程序中从jquery设置HttpPost端点

我想尝试一个Fine Uploader jQuery示例。 基本上它只是一种从客户端页面上传文件到Web服务器的方法。

有一个关于如何在项目的GitHub页面上设置服务器端文件流的示例。

如何从脚本调用此HttpPost endpoint ? 简单的jQuery示例如下所示:

 $(document).ready(function () { $('#jquery-wrapped-fine-uploader').fineUploader({ request: { endpoint: 'WhatToWriteHere??' }, debug: true }); }); 

那你在endpoint什么? 我想它会像Namespace.Namespace.ClassName.UploadMethod() ,但我一直在随便摆弄它,但不能让它工作。 使用Firebug进行调试时,出现以下错误:

 405 Method Not Allowed [FineUploader] xhr - server response received for 0 The HTTP verb POST used to access path '/FineUploaderTest/Uploadfolder' is not allowed. 

任何的想法?

您可以编写一个通用的HttpHandler来处理文件上传:

 public class UploadHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { var request = context.Request; var formUpload = request.Files.Count > 0; var xFileName = request.Headers["X-File-Name"]; var qqFile = request["qqfile"]; var formFilename = formUpload ? request.Files[0].FileName : null; var filename = xFileName ?? qqFile ?? formFilename; var inputStream = formUpload ? request.Files[0].InputStream : request.InputStream; var filePath = Path.Combine(context.Server.MapPath("~/App_Data"), filename); using (var fileStream = File.OpenWrite(filePath)) { inputStream.CopyTo(fileStream); } context.Response.ContentType = "application/json"; context.Response.Write("{\"success\":true}"); } public bool IsReusable { get { return true; } } } 

然后:

 $(document).ready(function () { $('#jquery-wrapped-fine-uploader').fineUploader({ request: { endpoint: '/uploadhandler.ashx' }, debug: true }); });