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

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 使用带有MVC3的plupload前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以,我在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上创建正确的会话.

猜你在找的asp.Net相关文章