Changeset 5071 in subversion


Ignore:
Timestamp:
Aug 16, 2011 8:11:21 AM (22 months ago)
Author:
alec
Message:
  • Add client-side checking of uploaded files size
Location:
trunk/roundcubemail
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/roundcubemail/CHANGELOG

    r5055 r5071  
    22=========================== 
    33 
     4- Add client-side checking of uploaded files size 
    45- Add newlines between organization, department, jobtitle (#1488028) 
    56- Recalculate date when replying to a message and localize the cite header (#1487675) 
  • trunk/roundcubemail/program/include/main.inc

    r5068 r5071  
    23332333} 
    23342334 
    2335 function rcube_upload_progress_init() 
     2335function rcube_upload_init() 
    23362336{ 
    23372337    global $RCMAIL; 
     
    23442344        } 
    23452345    } 
     2346 
     2347    // find max filesize value 
     2348    $max_filesize = parse_bytes(ini_get('upload_max_filesize')); 
     2349    $max_postsize = parse_bytes(ini_get('post_max_size')); 
     2350    if ($max_postsize && $max_postsize < $max_filesize) 
     2351        $max_filesize = $max_postsize; 
     2352 
     2353    $RCMAIL->output->set_env('max_filesize', $max_filesize); 
     2354    $max_filesize = show_bytes($max_filesize); 
     2355    $RCMAIL->output->set_env('filesizeerror', rcube_label(array( 
     2356        'name' => 'filesizeerror', 'vars' => array('size' => $max_filesize)))); 
     2357 
     2358    return $max_filesize; 
    23462359} 
    23472360 
  • trunk/roundcubemail/program/js/app.js

    r5049 r5071  
    32543254 
    32553255    // get file input field, count files on capable browser 
    3256     var field = $('input[type=file]', form).get(0), 
     3256    var i, size = 0, field = $('input[type=file]', form).get(0), 
    32573257      files = field.files ? field.files.length : field.value ? 1 : 0; 
    32583258 
    32593259    // create hidden iframe and post upload form 
    32603260    if (files) { 
     3261      // check file size 
     3262      if (field.files && this.env.max_filesize && this.env.filesizeerror) { 
     3263        for (i=0; i<files; i++) 
     3264          size += field.files[i].size; 
     3265        if (size && size > this.env.max_filesize) { 
     3266          this.display_message(this.env.filesizeerror, 'error'); 
     3267          return; 
     3268        } 
     3269      } 
     3270 
    32613271      var frame_name = this.async_upload_form(form, 'upload', function(e) { 
    32623272        var d, content = ''; 
  • trunk/roundcubemail/program/steps/mail/compose.inc

    r5040 r5071  
    12071207    $attrib['id'] = 'rcmUploadbox'; 
    12081208 
    1209   // Enable upload progress bar 
    1210   rcube_upload_progress_init(); 
    1211  
    1212   // find max filesize value 
    1213   $max_filesize = parse_bytes(ini_get('upload_max_filesize')); 
    1214   $max_postsize = parse_bytes(ini_get('post_max_size')); 
    1215   if ($max_postsize && $max_postsize < $max_filesize) 
    1216     $max_filesize = $max_postsize; 
    1217  
    1218   $OUTPUT->set_env('max_filesize', $max_filesize); 
    1219   $max_filesize = show_bytes($max_filesize); 
    1220    
     1209  // Get filesize, enable upload progress bar 
     1210  $max_filesize = rcube_upload_init(); 
     1211 
    12211212  $button = new html_inputfield(array('type' => 'button')); 
    1222    
     1213 
    12231214  $out = html::div($attrib, 
    12241215    $OUTPUT->form_tag(array('name' => 'uploadform', 'method' => 'post', 'enctype' => 'multipart/form-data'), 
     
    12311222    ) 
    12321223  ); 
    1233    
     1224 
    12341225  $OUTPUT->add_gui_object('uploadbox', $attrib['id']); 
    12351226  return $out; 
Note: See TracChangeset for help on using the changeset viewer.