如何在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 }); });