加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 使用带有MVC3的plupload

发布时间:2020-12-16 00:19:20 所属栏目:asp.Net 来源:网络整理
导读:所以,我在MVC3中使用flash运行时实现了plupload. 它的工作方式非常完美,因为它使用更正操作上传并运行它.但是,我真的希望能够控制响应,并在plupload中处理它,但我似乎无法得到任何响应. 我已经尝试重写fileUploaded,但我似乎无法从参数中得到任何东西.我试过
所以,我在MVC3中使用flash运行时实现了plupload.

它的工作方式非常完美,因为它使用更正操作上传并运行它.但是,我真的希望能够控制响应,并在plupload中处理它,但我似乎无法得到任何响应.

我已经尝试重写fileUploaded,但我似乎无法从参数中得到任何东西.我试过返回简单的字符串,json和你有什么.我似乎无法在客户端获得任何东西.当然通过flash发送,我甚至无法用firebug调试请求:/

与Error事件相同,并抛出异常.它正确地将异常解释为错误,但它始终是#IO ERROR,其中一些代码如2038或另一端出现.我无法显示我的异常字符串或任何内容.有人可以帮忙吗?

奖金问题:我如何发送会话/ cookie数据以及plupload,所以我可以在我的行动中访问会话?

解决方法

以下对我有用:
[HttpPost]
public ActionResult Upload(int? chunk,string name)
{
    var fileUpload = Request.Files[0];
    var uploadPath = Server.MapPath("~/App_Data");
    chunk = chunk ?? 0;
    using (var fs = new FileStream(Path.Combine(uploadPath,name),chunk == 0 ? FileMode.Create : FileMode.Append))
    {
        var buffer = new byte[fileUpload.InputStream.Length];
        fileUpload.InputStream.Read(buffer,buffer.Length);
        fs.Write(buffer,buffer.Length);
    }
    return Json(new { message = "chunk uploaded",name = name });
}

在客户端:

$('#uploader').pluploadQueue({
    runtimes: 'html5,flash',url: '@Url.Action("Upload")',max_file_size: '5mb',chunk_size: '1mb',unique_names: true,multiple_queues: false,preinit: function (uploader) {
        uploader.bind('FileUploaded',function (up,file,data) {
            // here file will contain interesting properties like 
            // id,loaded,name,percent,size,status,target_name,...
            // data.response will contain the server response
        });
    }
});

就奖金问题而言,我愿意通过不使用会话来回答它,因为它们不能很好地扩展,但因为我知道你可能不喜欢这个答案你有可能通过一个会话使用multipart_params在请求中的id:

multipart_params: {
    ASPSESSID: '@Session.SessionID'
},

然后在服务器perform some hacks上创建正确的会话.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读