m.buildform.html.php 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. /**
  3. * The buildform mobile view file of file module of RanZhi.
  4. *
  5. * @copyright Copyright 2009-2015 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.cnezsoft.com)
  6. * @license ZPL(http://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
  7. * @author Hao Sun <sunhao@cnezsoft.com>
  8. * @package file
  9. * @version $Id: buildform.html.php 3760 2016-04-15 05:20:21Z daitingting $
  10. * @link http://www.ranzhico.com
  11. */
  12. ?>
  13. <?php
  14. $filesUID = 'files-' . uniqid();
  15. $maxSize = ini_get('upload_max_filesize');
  16. ?>
  17. <div id='<?php echo $filesUID ?>' class='list gray compact'>
  18. <div class='heading'>
  19. <div class='title'><?php echo $this->lang->file->common ?> <?php echo '(' . $maxSize . ')';?></div>
  20. </div>
  21. <div class="item file"><div class="content"><input type="file" name="files[]" class="fluid"></div><a class="btn file-deleter"><i class="icon-trash text-danger"></i></a></div>
  22. <div class='divider'></div>
  23. <div class='item'>
  24. <a class='btn text-primary file-add'><i class="icon-plus"></i></a>
  25. </div>
  26. </div>
  27. <script>
  28. $(function()
  29. {
  30. var $files = $('#<?php echo $filesUID ?>');
  31. var $template = $('<div class="item file"><div class="content"><input type="file" name="files[]" class="fluid"></div><a class="btn file-deleter"><i class="icon-trash text-danger"></i></a></div>');
  32. var $divider = $files.children('.divider');
  33. var appendFile = function(count)
  34. {
  35. count = count || 1;
  36. for(var i = count; i > 0; i--) $divider.before($template.clone());
  37. };
  38. appendFile("<?php echo $fileCount ?>");
  39. $files.on($.TapName, '.file-add', function() {appendFile();})
  40. .on($.TapName, '.file-deleter', function() {$(this).closest('.file').remove();})
  41. .on('change', 'input[type="file"]', function()
  42. {
  43. var $file = $(this);
  44. $file.closest('.item').removeClass('danger-pale');
  45. if(typeof($file[0].files) != 'undefined')
  46. {
  47. var maxUploadInfo = "<?php echo $maxSize;?>";
  48. var sizeType = {'K': 1024, 'M': 1024 * 1024, 'G': 1024 * 1024 * 1024};
  49. var unit = maxUploadInfo.replace(/\d+/, '');
  50. var maxUploadSize = maxUploadInfo.replace(unit, '') * sizeType[unit];
  51. var fileSize = 0;
  52. $files.find('input[type="file"]').each(function()
  53. {
  54. if($(this).val()) fileSize += $(this)[0].files[0].size;
  55. });
  56. if($file[0].files[0].size > maxUploadSize)
  57. {
  58. alert('<?php echo $lang->file->errorFileSize?>');
  59. $file.closest('.item').addClass('danger-pale');
  60. }
  61. else if(fileSize > maxUploadSize)
  62. {
  63. alert('<?php echo $lang->file->errorFileSize?>');
  64. }
  65. }
  66. });
  67. });
  68. </script>