2013-12-16 28 views
1

我正在使用uploadify上傳文件。如果所有文件的總上傳大小大於10MB,我想拋出錯誤並停止提交/上傳表單。限制uploadify中所有文件的總上傳大小

我瀏覽了uploadify文件http://www.uploadify.com/documentation/,發現「fileSizeLimit」限制單個文件的文件大小。但是我想要將所有文件的總上傳大小放在一起。

有人可以建議我該怎麼做?以下是我的代碼

<script> 
$(function() { 
$('#file_upload').uploadify({  
    'formData' : { 
     'timestamp' : '<?php echo $timestamp;?>', 
     'token'  : '<?php echo md5('unique_salt' . $timestamp);?>' 
    }, 
    'swf'  : 'uploadify.swf', 
    'uploader' : 'uploadify.php', 

    'auto'  : false,   
    'buttonText' : 'Upload Document', 
    'fileTypeExts' : '<?php echo $allowedFileExts; ?>', 
    'fileSizeLimit' : '10MB', 
    'onQueueComplete' : function(event,data) {    
     document.someForm.submit(); 
     document.someForm.reset(); 
    } 
}); 
}); 
</script> 
<form id="someForm" name="someForm" action="test.php" method="post" enctype="multipart/form-data"> 
<input id="file_upload" name="file_upload" type="file" multiple="true"/> 
<a href="javascript:$('#file_upload').uploadify('cancel','*');">Clear Queue</a> 
<input onclick="$('#file_upload').uploadify('upload','*')" type="button" id="submitbtn" name="submitbtn" value="Submit" /> 
<div id="queue"></div> 
</form> 
+0

以一個全局變量存在,然後添加尺寸 –

+0

哎ANKIT。 thx爲您的快速反應。我曾嘗試過你的建議。我可以觸發錯誤。但無法停止提交/上傳表單。當總大小超過10MB時,我也嘗試隱藏提交按鈕。但我總想顯示提交按鈕,因爲文件上傳在我的表單上不是強制性的。 –

+0

你好,我實際上不能估計他們在圖書館回來什麼,但你可能會通過使用onselect通過下面的鏈接。檢查文件對象下的console.log(文件)中的內容。 (大多數時候你可以獲得文件大小的數組)。保持陣列中的所有尺寸並總結。 http://www.uploadify.com/documentation/uploadify/onselect/ –

回答

0

Atlast,我找到了我自己的問題解決方案。非常感謝您的支持。我的代碼如下。可能對某人有幫助。

<script type="text/javascript"> 
<?php $timestamp = time();?> 
var totalfilesize = 0; 
$(function() { 
var queueSize = 0; 
$('#file_upload').uploadify({  
    'formData' : { 
     'timestamp' : '<?php echo $timestamp;?>', 
     'token'  : '<?php echo md5('unique_salt' . $timestamp);?>' 
    }, 
    'swf'  : 'uploadify.swf', 
    'uploader' : 'uploadify.php', 

    'auto'  : false,   
    'buttonText' : 'Upload Document', 
    'fileTypeExts' : '<?php echo $allowedFileExts; ?>', 
    'fileSizeLimit' : '10MB',   
    'onSelectError' : function() { 
     alert('The file ' + file.name + ' returned an error and was not added to the queue.'); 
    }, 
    'onSelect' : function(file){ 
     queueSize++; 
     $('#queuesize').val(queueSize); 
     totalfilesize = totalfilesize+file.size; 
     chkfilesize(totalfilesize); 
    }, 
    'onCancel' : function(file) { 
     queueSize--; 
     $('#queuesize').val(queueSize); 
     totalfilesize = totalfilesize-file.size; 
     chkfilesize(totalfilesize);    
    }, 
    'onUploadStart' : function(file) {    
    }, 
    'onUploadSuccess' : function(file, data, response) { 
     //$("#response").html(data);    
     $('#uploadedfiles').val($('#uploadedfiles').val() + data);    
    }, 
    'onQueueComplete' : function(event,data) {    
     document.someForm.submit(); 
     $('#queuesize').val('0'); 
     $('#uploadedfiles').val('');    
     document.someForm.reset(); 

    } 
}); 
}); 

function chkfilesize(totalfilesize){ 
if(totalfilesize > 10485760){   
    $('#fileerror').html('File Size exceeds 10MB'); 
    $('#fileerror').show(); 
}else{   
    $('#fileerror').html(''); 
    $('#fileerror').hide(); 
} 

} 
function submitForm() { 
var validatefileresp = validatefile();  
if(validatefileresp === true){ 
    $('#file_upload').uploadify('upload','*'); 
} 
} 

function validatefile(){ 
if ($("#queuesize").val() == 0) { 
    document.someForm.submit(); 
    $('#uploadedfiles').val(''); 
    $('#queuesize').val('0');   
    document.someForm.reset();   
}else{ 
    if(totalfilesize > 10485760){ 
     $('#fileerror').html('File Size exceeds 10MB'); 
     return false; 
    }else{ 
     return true; 
    } 

} 

} 
</script> 
<form id="someForm" name="someForm" action="test.php" method="post" enctype="multipart/form-data"> 
First name: <input name="fname" type="text" /><br> 
Last name: <input name="lname" type="text" /><br><br><br> 
Upload only doc,pdf,docx,xls,xlsx,txt,rtf format files<br> 
<input id="file_upload" name="file_upload" type="file" multiple="true"/> 
<input type="hidden" name="uploadedfiles" id="uploadedfiles" value="" /> 
<input type="hidden" name="queuesize" id="queuesize" value="0" /> 
<br><br> 
<a href="javascript:$('#file_upload').uploadify('cancel','*');">Clear Queue</a> 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<input onclick="javascript:submitForm();" type="button" id="submitbtn" name="submitbtn" value="Submit" /> 
<div id="fileerror"></div> 
<div id="queue"></div> 

<div id="response"></div> 
</form> 
+0

代碼無法正常工作 – fedrick

0

嘗試sizeLimit

看這句話**

else if (d.type ==="File Size") 
    alert(c.name+' '+d.type+' Limit: '+Math.round(d.sizeLimit/1024)+'KB');** 

在:

onError: function (a, b, c, d) { 
     if (d.status == 404) 
      alert('Could not find upload script. Use a path relative to: '+'<?= getcwd() ?>'); 
     else if (d.type === "HTTP") 
      alert('error aaa'+d.type+": "+d.status); 
     else if (d.type ==="File Size") 
      alert(c.name+' '+d.type+' Limit: '+Math.round(d.sizeLimit/1024)+'KB'); 
     else 
      alert('error '+d.type+": "+d.text);