[英]How to make a loop for multiple plupload
我有一段這樣的代碼:
$(function() {
var uploader1 = new plupload.Uploader({
runtimes : 'gears,html5,flash,silverlight,browserplus',
browse_button : 'pickfiles1',
container : 'container',
max_file_size : '10mb',
url : 'upload.php',
flash_swf_url : '/plupload/js/plupload.flash.swf',
silverlight_xap_url : '/plupload/js/plupload.silverlight.xap',
filters : [
{title : "Image files", extensions : "jpg,gif,png"},
{title : "Zip files", extensions : "zip"}
],
resize : {width : 320, height : 240, quality : 90}
});
uploader1.bind('Init', function(up, params) {
$('#filelist1').html("<div>Current runtime: " + params.runtime + "</div>");
});
$('#uploadfiles1').click(function(e) {
uploader1.start();
e.preventDefault();
});
uploader1.init();
uploader1.bind('FilesAdded', function(up, files) {
var temp_img_name = '';
$.each(files, function(i, file) {
$('#filelist1').append(
'<div id="' + file.id + '">' +
file.name + ' (' + plupload.formatSize(file.size) + ') <b></b> <input type="hidden" name="hdnPictureNameAddtemp" value="' + file.name + '"/>' +
'</div>');
if(temp_img_name == ''){
temp_img_name += file.name;
} else {
temp_img_name += ', ' + file.name;
}
});
$('#filelist1').append('<input type="hidden" name="hdnPictureNameAdd" value="' + temp_img_name + '"/>');
up.refresh(); // Reposition Flash/Silverlight
});
uploader1.bind('UploadProgress', function(up, file) {
$('#' + file.id + " b").html(file.percent + "%");
});
uploader1.bind('Error', function(up, err) {
$('#filelist1').append("<div>Error: " + err.code +
", Message: " + err.message +
(err.file ? ", File: " + err.file.name : "") +
"</div>"
);
up.refresh(); // Reposition Flash/Silverlight
});
uploader1.bind('FileUploaded', function(up, file) {
$('#' + file.id + " b").html("100%");
});
});
我的問題是我想創建一個循環,因為上述代碼的某些部分需要更改。 實際上,應該更改uploader1,filelist1,pickfiles1,uploadfiles1。 它的最后一個數字應從1增加到n。 我嘗試了所有事情來創建一個循環,但似乎不起作用。
另外,此代碼用於控制PLupload
並沒有經歷整個邏輯,但是(大致)一個選項應該是這樣的(對於10個上傳者),將itemIndex連接到每個選擇器。 (當心似乎沒有被索引的容器項目)
在服務器端,您可能需要了解哪個上傳者觸發了上傳。 例如,這可以使用querystring參數解決。
$(function() {
for (var itemIndex=1, itemIndex<10; itemIndex++)
initUploader(itemIndex);
});
function initUploader(itemIndex) {
var uploader1 = new plupload.Uploader({
runtimes : 'gears,html5,flash,silverlight,browserplus',
browse_button : 'pickfiles'+itemIndex,
container : 'container'+itemIndex,
max_file_size : '10mb',
url : 'upload.php',
flash_swf_url : '/plupload/js/plupload.flash.swf',
silverlight_xap_url : '/plupload/js/plupload.silverlight.xap',
filters : [
{title : "Image files", extensions : "jpg,gif,png"},
{title : "Zip files", extensions : "zip"}
],
resize : {width : 320, height : 240, quality : 90}
});
uploader1.bind('Init', function(up, params) {
$('#filelist'+itemIndex).html("<div>Current runtime: " + params.runtime + "</div>");
});
$('#uploadfiles'+itemIndex).click(function(e) {
uploader1.start();
e.preventDefault();
});
uploader1.init();
uploader1.bind('FilesAdded', function(up, files) {
var temp_img_name = '';
$.each(files, function(i, file) {
$('#filelist'+itemIndex).append(
'<div id="' + file.id + '">' +
file.name + ' (' + plupload.formatSize(file.size) + ') <b></b> <input type="hidden" name="hdnPictureNameAddtemp" value="' + file.name + '"/>' +
'</div>');
if(temp_img_name == ''){
temp_img_name += file.name;
} else {
temp_img_name += ', ' + file.name;
}
});
$('#filelist'+itemIndex).append('<input type="hidden" name="hdnPictureNameAdd" value="' + temp_img_name + '"/>');
up.refresh(); // Reposition Flash/Silverlight
});
uploader1.bind('UploadProgress', function(up, file) {
$('#' + file.id + " b").html(file.percent + "%");
});
uploader1.bind('Error', function(up, err) {
$('#filelist'+itemIndex).append("<div>Error: " + err.code +
", Message: " + err.message +
(err.file ? ", File: " + err.file.name : "") +
"</div>"
);
up.refresh(); // Reposition Flash/Silverlight
});
uploader1.bind('FileUploaded', function(up, file) {
$('#' + file.id + " b").html("100%");
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.