Plupload 怎么传参数给后台页

wrost 2013-04-01 09:11:13
我的MVC3程序,用Plupload作为上传组件
组件地址:http://www.plupload.com

我现在设置了后台页面,后台页面也可以接收到上传的文档:
runtimes: 'gears,flash,silverlight,browserplus,html5', // 这里是说用什么技术引擎
url: 'LibAddEdit', // 服务端上传路径

问题:我想把一个参数传递给后台页,比如GUID,请问该怎么做?


@{
ViewBag.Title = "LibAddEdit2";
Layout = "~/Views/Shared/_Admin.cshtml";
}
@section Header{
@* <style type="text/css">@Url.Content("Scripts/jquery.plupload.queue/css/jquery.plupload.queue.css");</style>*@
<link href="/Scripts/Plupload/jquery.plupload.queue/css/jquery.plupload.queue.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>

<!-- Third party script for BrowserPlus runtime (Google Gears included in Gears runtime now) -->
<script type="text/javascript" src="http://bp.yahooapis.com/2.4.21/browserplus-min.js"></script>


<!-- Load plupload and all it's runtimes and finally the jQuery queue widget -->
<script type="text/javascript" src="/Scripts/Plupload/plupload.full.js"></script>
<script type="text/javascript" src="/Scripts/Plupload/jquery.plupload.queue/jquery.plupload.queue.js"></script>
<script type="text/javascript" src="/Scripts/Plupload/i18n/zh-cn.js"></script>

<script type="text/javascript">
// Convert divs to queue widgets when the DOM is ready
$(function () {
$("#uploader").pluploadQueue({
// General settings
runtimes: 'gears,flash,silverlight,browserplus,html5', // 这里是说用什么技术引擎
url: 'LibAddEdit', // 服务端上传路径
max_file_size: '10mb', // 文件上传最大限制。
chunk_size: '1mb', // 上传分块每块的大小,这个值小于服务器最大上传限制的值即可。
unique_names: true, // 上传的文件名是否唯一

// Resize images on clientside if we can
//// 是否生成缩略图(仅对图片文件有效)
resize: { width: 320, height: 240, quality: 90 },

// Specify what files to browse for
//// 这个数组是选择器,就是上传文件时限制的上传文件类型
filters: [
{ title: "Image files", extensions: "pdf" },

],

// Flash settings
// plupload.flash.swf 的所在路径
flash_swf_url: '/Scripts/Plupload/plupload.flash.swf',

// Silverlight settings
// silverlight所在路径
silverlight_xap_url: '/Scripts/Plupload/plupload.silverlight.xap'
});

// Client side form validation
// 这一块主要是防止在上传未结束前表带提交,具体大家可酌情修改编写
$('form').submit(function (e) {
var uploader = $('#uploader').pluploadQueue();

// Files in queue upload them first
if (uploader.files.length > 0) {
// When all files are uploaded submit form
uploader.bind('StateChanged', function () {
if (uploader.files.length === (uploader.total.uploaded + uploader.total.failed)) {
$('form')[0].submit();
}
});

uploader.start();
} else {
alert('You must queue at least one file.');
}

return false;
});
});
</script>
}
<h2>LibAddEdit2</h2>

<div id="uploader" >
<p>You browser doesn't have Flash, Silverlight, Gears, BrowserPlus or HTML5 support.</p>
</div>
...全文
6989 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
静思映雪 2013-10-22
  • 打赏
  • 举报
回复
我知道两种:(都是对URL操作) 1. 初始化的时候: url: '/upload.aspx?id='+Id 2. 之后的任意时刻:uploader.settings.url = uploadersettings.url + '?token=' + myToken; 参考自:http://stackoverflow.com/questions/13367897/unable-to-pass-additional-parameters-in-plupload
wrost 2013-04-02
  • 打赏
  • 举报
回复
wrost 2013-04-02
  • 打赏
  • 举报
回复
引用 4 楼 zhuyinshengNo1 的回复:
看了头昏
现在找到方法了: 感谢Webdiyer大哥提供帮助 http://blog.cdeutsch.com/2011/02/plupload-and-aspnet-mvc3.html Plupload 提交到服务端的处理代码如下: 最好用谷歌浏览器进行调试,可以看到提交的参数、参数值

/// <summary>  
/// Handles chuncked file uploads like the ones from plupload.  
/// </summary>  
/// <param name="chunk"></param>  
/// <param name="name"></param>  
/// <returns></returns>  
[HttpPost]  
public ActionResult Upload(int? chunk, string name)  
{  
    var fileUpload = Request.Files[0];  
    var uploadPath = Server.MapPath("~/App_Data/Uploads");  
    chunk = chunk ?? 0;  
  
    //UPDATE 2/17/2011: Removed this since it doesn't work. I recommend setting the unique_names param client side if you want unique names.  
    ////find a free filename if this is the first chunk  
    //if (!chunk.HasValue || chunk < 1)  
    //{  
    //    int xx = 1;  
    //    while (System.IO.File.Exists(uploadedFilePath))  
    //    {  
    //        uploadedFilePath = Path.Combine(uploadPath, Path.GetFileNameWithoutExtension(name) + "_" + xx + Path.GetExtension(name));  
    //        xx++;  
    //    }  
    //}  
      
    //TODO: cleanup old files  
  
    //write chunk to disk.  
    string uploadedFilePath = Path.Combine(uploadPath, name);  
    using (var fs = new FileStream(uploadedFilePath, chunk == 0 ? FileMode.Create : FileMode.Append))  
    {  
        var buffer = new byte[fileUpload.InputStream.Length];  
        fileUpload.InputStream.Read(buffer, 0, buffer.Length);  
        fs.Write(buffer, 0, buffer.Length);  
    }  
  
    return Content("Success", "text/plain");  
}  

wrost 2013-04-01
  • 打赏
  • 举报
回复
再顶一顶啊!!!!
wrost 2013-04-01
  • 打赏
  • 举报
回复
引用 1 楼 wrost 的回复:
现在发现,放到MVC里边,一个文件怎么分成4次向后台相应,导致文件分成4次来保存
相当于一个文件被分成了4块,文件就不能打开了。
wrost 2013-04-01
  • 打赏
  • 举报
回复
现在发现,放到MVC里边,一个文件怎么分成4次向后台相应,导致文件分成4次来保存
zhuyinshengNo1 2013-04-01
  • 打赏
  • 举报
回复
看了头昏

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧