2011-09-12 4 views
3

これは、コードの一部です:plupload - 選択したファイルの制限数

inprogress = false; 

function getid(id) { 
    return document.getElementById(id); 
} 

var uploader = new plupload.Uploader({ 
    runtimes : 'gears,html5,flash,silverlight,browserplus', 
    browse_button : 'link-browse', 
    max_file_size : '100mb', 
    url : 'site/upload/process.php?dir=<?php echo $uplid; ?>', 
    flash_swf_url : 'site/upload/plupload.flash.swf', 
    silverlight_xap_url : 'site/upload/plupload.silverlight.xap', 
}); 
uploader.bind('Init', function(up, params) { 
    //$('filelist').innerHTML = "<div>Current runtime: " + params.runtime + "</div>"; 
}); 
uploader.bind('FilesAdded', function(up, files) { 
    if(uploader.files.length <= 0){ 
     var element = document.getElementById('standby'); 
     element.parentNode.removeChild(element); 
    } 
    if(up.files.length > 4 || uploader.files.length > 4) 
    { 
     alert('Only 5 files per upload !'); 

     return false; 
    } 
    for (var i in files) { 
     getid('filelist').innerHTML += '<div class="item" id="' + files[i].id + '"><div class="name">' + files[i].name + '</div><div onclick="removeme(\''+files[i].id+'\')" id="remove-'+files[i].id+'" class="remove"></div><div class="size">[ ' + plupload.formatSize(files[i].size) + ' ]</div><div class="percent"></div></div>'; 
    } 
}); 
uploader.bind('UploadFile', function(up, file) { 
    getid('submit-form').innerHTML += '<input type="hidden" name="file-' + file.id + '" value="' + file.name + '" />'; 
}); 
uploader.bind('UploadProgress', function(up, file) { 
    getid(file.id).getElementsByTagName('div')[3].innerHTML = '<span>' + file.percent + "%</span>"; 
}); 
uploader.bind('StateChanged', function(uploader) { 
     if (uploader.files.length === (uploader.total.uploaded + uploader.total.failed)) { 
     window.location = "./dl/<?php echo $uplid; ?>" 
     } 
    }); 
getid('link-upload').onclick = function() { 
    if(uploader.files.length < 1){ 
     alert('Please select files first.'); 
     return false; 
    } 
    inprogress = true; 
    uploader.start(); 
    return false; 
}; 
uploader.init(); 
function removeme(id){ 
    if(inprogress) return false; 
    if(uploader.files.length == 1) 
    getid('filelist').innerHTML += '<div id="standby"></div>'; 

    var element = document.getElementById(id); 
    element.parentNode.removeChild(element); 

    var toremove = ''; 

    for(var i in uploader.files){ 
     if(uploader.files[i].id === id){ 
      toremove = i; 
     } 
    } 
    uploader.files.splice(toremove, 1); 
} 

私は、アップロードされたファイルの制限 そして、私が選択した4つのファイルを持っている、と私は5以上を選択した場合することができます - >それは意志エラー表示

しかし、私が最初に例14のファイルを選択した場合、それらは「ファイルリスト」に表示されます。

これを制限する方法、またはどこに "false false"を入れるか。任意の助け

感謝:)

+0

サイドノート5つのファイルをお勧めしますすでに警告します5.あなたの現在のスクリプトの長さを等しくし、アップロードしようとすると戻ります5番目のファイル。 –

答えて

3

if(up.files.length > 4 || uploader.files.length > 4 || files.length > 4)からif(up.files.length > 4 || uploader.files.length > 4)を展開します。

1

だけmax_file_countを使用します。それは冗長なため、アップローダーのインスタンスだからロブWの答えへの応答に

+0

これは常に動作しているわけではありません:http://stackoverflow.com/a/7957667/669677 –

0

をアップロードする量のファイルを制限するための4オプション、upuploaderは同じです。既に登録されているファイルを考慮に入れて(例えば、2人のファイルを追加してから3人のファイルを追加するなど)、入ってくるファイルの数が4を超えるかどうかを確認するために(uploader.files.length + files.length) > 4をチェックすると便利です。

そう結論で、私は

if(uploader.files.length > 4 || files.length > 4 || (uploader.files.length + files.length) > 4) { 
4

- Working for Pupload v2.0

$("#uploader").pluploadQueue({ 
    runtimes: 'html5,html4', 
    url: 'upload.php', 
    max_file_size: '2mb', 
    unique_names: false, 
    rename: true, 
    prevent_duplicates: true, 
    init : { 
     FilesAdded: function(up, files) { 
      var max_files = 12; 
      plupload.each(files, function(file) { 
      if (up.files.length > max_files) { 
       alert('You are allowed to add only ' + max_files + ' files.'); 
       up.removeFile(file); 
      } 
      }); 
      if (up.files.length >= max_files) { 
      $('#pickfiles').hide('slow'); 
      } 
     }, 
     FilesRemoved: function(up, files) { 
      if (up.files.length < max_files) { 
      $('#pickfiles').fadeIn('slow'); 
      } 
     } 
     }, 
    resize : {width : 700, height : 700, quality : 90}, 
    filters: [ 
     { 
      title: "Image files", 
      extensions: "jpg,jpeg,gif,png" 
     } 
    ] 
}); 
関連する問題