微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery – ASP.NET MVC 4 Web Api ajax文件上传

我正在使用asp.net mvc 4 web api开发某种服务.在一个表单上,用户必须上传少量文件,然后将表单提交给服务器.问题是在ajax文件上传到asp.net mvc web api.我已经实现了没有ajax的上传.但是我需要用ajax完成它.
这是实施
public Task<HttpResponseMessage> PostJob()
{
    if (!Request.Content.IsMimeMultipartContent())
    {
        throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.UnsupportedMediaType));
    }

    string path = HttpContext.Current.Server.MapPath(string.Format("~/Resources/Documents"));
    MultipartFormDataStreamProvider provider = new MultipartFormDataStreamProvider(path);
    var request = Request.Content.ReadAsMultipartAsync(provider);

    var task = request.ContinueWith<HttpResponseMessage>(t =>
    {
        if (t.IsFaulted || t.IsCanceled)
        {
            return new HttpResponseMessage(HttpStatusCode.InternalServerError);
        }

        string fileName = provider.BodyPartFileNames.FirstOrDefault().Value;
        string originalName = provider.BodyPartFileNames.FirstOrDefault().Key.Trimstart('"').TrimEnd('"');
        string RandomName = provider.BodyPartFileNames.First().Value + Path.GetExtension(originalName);

        FileInfo file = new FileInfo(fileName);
        file.copyTo(Path.Combine(path,originalName),true);
        file.Delete();


        return new HttpResponseMessage(HttpStatusCode.Created);

    });

我找到了使用HTML5 http://www.strathweb.com/2012/04/html5-drag-and-drop-asynchronous-multi-file-upload-with-asp-net-webapi/执行此操作的文章.我需要在IE8中完成这项工作.也许你有任何想法?

任何帮助表示赞赏,
伊莉娜.

解决方法

在旧版浏览器(如IE8)中,您无法使用带有AJAX的纯JavaScript来上传文件.原因是您无权访问用户文件输入中选择的文件内容.由于您无权访问此内容,因此无法将其发送到服务器.

您可以使用一些现有的文件上传插件

> Plupload
> Blueimp
> Valums Ajax Upload
> Uploadify

他们将测试浏览器的功能,如果它支持HTML5和允许使用AJAX uuploading文件的新XHR2对象,它将使用它.或者,如果浏览器不支持,则插件可以回退到Flash或隐藏的iframe.因此,如果您需要支持旧版浏览器,您可能没有太多选择,只能使用其他一些客户端脚本技术(如Flash)或使用隐藏的iframe来伪造AJAX请求并实际发送正常的multipart / form-data请求.

原文地址:https://www.jb51.cc/jquery/181037.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐