yii CMultiFileUpload最大文件大小验证

vbopmzt1  于 2022-11-09  发布在  其他
关注(0)|答案(4)|浏览(254)

我正在使用CMultifileUpload进行文件上传,并试图设置文件的最大上传大小。因为我搜索了一下,没有得到任何内置参数来设置上传前的最大文件大小。
这里是我上传文件的代码,

  1. $filetype="avi|flv|mp4|mpeg|mov|3gp|mkv|vob|divx|mpg|wmv|wlmp";
  2. $this->widget('CMultiFileUpload', array(
  3. 'model'=>$model,
  4. 'name' => 'videofile',
  5. 'max'=>1,
  6. 'accept' => $filetype,
  7. 'duplicate' => 'Duplicate file!',
  8. 'denied' => 'Invalid file type',
  9. 'htmlOptions'=>array('style'=>'opacity: 0; height: 136px; width: 200px;cursor: pointer;'),
  10. 'options'=>array(
  11. 'onFileSelect'=>'function(e, v, m){
  12. var size=$("#videofile")[0].files[0].size;
  13. alert(size);
  14. if(size <=25*1024*1024){
  15. $(".black_overlay").show();
  16. $("#video-form").submit();
  17. }else{
  18. alert("File Size Exceeded");
  19. $("#video-form").reset();
  20. return false;
  21. }
  22. }',
  23. ),
  24. ));

我得到的是,如果条件成功的情况下工作正常,但对于失败的情况下,形式是不重置。
实际上,我正在尝试的是,在提交之前验证文件大小。
帮帮我。先谢谢你了。

06odsfpq

06odsfpq1#

请在规则中尝试以下操作:

  1. array('yourfile','file', 'types'=>'jpg, gif, png, jpeg', 'maxSize'=>1024 * 1024 * 50, 'tooLarge'=>'File has to be smaller than 50MB'),

更多详情:
http://www.yiiframework.com/doc/api/1.1/CFileValidator#maxSize-detail
或配置php.ini文件:
http://www.php.net/manual/en/ini.core.php#ini.upload-max-filesize

blpfk2vs

blpfk2vs2#

你可以试试这个.这个会有用的

  1. 'afterFileSelect'=>'function(e ,v ,m){
  2. var fileSize = e.files[0].size;
  3. if(fileSize>800*1024){ <--800KB limit
  4. alert("Exceeds file upload limit 800KB");
  5. $(".MultiFile-remove").click(); <--cliks the remove button if size exceeds
  6. }
  7. return true;
  8. }',
piztneat

piztneat3#

Cmultifileupload文件大小验证对我有效。

  1. `$this->widget('CMultiFileUpload', array(
  2. 'model'=>$model,
  3. 'name' => 'audiofile',
  4. 'max'=>1,
  5. 'accept' => $filetype,
  6. 'duplicate' => 'Duplicate file!',
  7. 'denied' => 'Invalid file type',
  8. 'htmlOptions'=>array('style'=>'opacity: 0; height: 80px; width: 118px;cursor: pointer;','size'=>25),
  9. 'options'=>array(
  10. 'afterFileSelect'=>'function(e ,v ,m){
  11. var fileSize = e.files[0].size;
  12. if(fileSize>125*1024*1024){
  13. alert("Exceeds file upload limit(500). Uploaded 200 MB not allowed!");
  14. }
  15. else
  16. {
  17. $(".black_overlay").show();
  18. $("#audio-form").submit();
  19. }
  20. $("#audio-form").reset();
  21. return false;
  22. }',
  23. ),
  24. ));
展开查看全部
lmyy7pcs

lmyy7pcs4#

适合我:

  1. <div id="multFileUpload">
  2. <?php
  3. $this->widget('CMultiFileUpload', array(
  4. 'model'=>$model,
  5. 'attribute'=>'updatePhoto',
  6. 'accept'=>'jpg|jpeg|gif|png',
  7. 'name'=>'photos',
  8. 'remove'=>'remove',
  9. 'options'=>array(
  10. 'onFileSelect'=>'function(e ,v ,m){
  11. var fileSize = e.files[0].size;
  12. if(fileSize>1024*1024){ //1MB
  13. alert("Maximum file size 1MB only");
  14. $("#photos").reset();
  15. return false;
  16. }
  17. }',
  18. ),
  19. 'denied'=>'File is not allowed',
  20. 'max'=>10, //max 10 files
  21. ));
  22. ?>
  23. </div>
展开查看全部

相关问题