diff --git a/app/controllers/dmsf_upload_controller.rb b/app/controllers/dmsf_upload_controller.rb index 273eebe1..701e9bc4 100644 --- a/app/controllers/dmsf_upload_controller.rb +++ b/app/controllers/dmsf_upload_controller.rb @@ -62,8 +62,22 @@ class DmsfUploadController < ApplicationController f.write(buffer) end end - - render :layout => false + if File.size("#{DmsfHelper.temp_dir}/#{@disk_filename}") <= 0 + begin + File.delete("#{DmsfHelper.temp_dir}/#{@disk_filename}") + rescue + end + render :layout => nil, :json => { :jsonrpc => "2.0", + :error => { + :code => 103, + :message => l(:header_minimum_filesize), + :details => l(:error_minimum_filesize, + :file => @tempfile.original_filename.to_s) + } + } + else + render :layout => false + end end #TODO: flash notice when files saved and unlocked diff --git a/app/models/dmsf_mailer.rb b/app/models/dmsf_mailer.rb index 9751fc73..3528acd3 100644 --- a/app/models/dmsf_mailer.rb +++ b/app/models/dmsf_mailer.rb @@ -49,7 +49,6 @@ class DmsfMailer < Mailer end def send_documents(user, email_to, email_cc, email_subject, zipped_content, email_plain_body) -debugger zipped_content_data = open(zipped_content, "rb") {|io| io.read } @body = email_plain_body diff --git a/app/views/dmsf/_multi_upload.html.erb b/app/views/dmsf/_multi_upload.html.erb index 699a9855..5ca6dc97 100644 --- a/app/views/dmsf/_multi_upload.html.erb +++ b/app/views/dmsf/_multi_upload.html.erb @@ -98,20 +98,27 @@ pluploader.bind('FileUploaded', function(pluploader, file, response) { var responseObject = jQuery.parseJSON(response.response); - var disk_filename_input = jQuery("").attr("type","hidden") - .attr("name","uploaded[" + dmsfFileFieldCount + "][disk_filename]") - .val(responseObject.disk_filename); - uploader.append(disk_filename_input); - var content_type_input = jQuery("").attr("type","hidden") - .attr("name","uploaded[" + dmsfFileFieldCount + "][content_type]") - .val(responseObject.content_type); - uploader.append(content_type_input); - var original_filename_input = jQuery("").attr("type","hidden") - .attr("name","uploaded[" + dmsfFileFieldCount + "][original_filename]") - .val(responseObject.original_filename); - uploader.append(original_filename_input); + if (responseObject.error == null) { + var disk_filename_input = jQuery("").attr("type","hidden") + .attr("name","uploaded[" + dmsfFileFieldCount + "][disk_filename]") + .val(responseObject.disk_filename); + uploader.append(disk_filename_input); + var content_type_input = jQuery("").attr("type","hidden") + .attr("name","uploaded[" + dmsfFileFieldCount + "][content_type]") + .val(responseObject.content_type); + uploader.append(content_type_input); + var original_filename_input = jQuery("").attr("type","hidden") + .attr("name","uploaded[" + dmsfFileFieldCount + "][original_filename]") + .val(responseObject.original_filename); + uploader.append(original_filename_input); + } else { + file.status = plupload.FAILED; + responseObject.error.file = file; + pluploader.trigger('Error', responseObject.error); + } if(pluploader.total.uploaded == pluploader.files.length) jQuery('#uploadform').submit(); + else if(pluploader.total.uploaded + pluploader.total.failed == pluploader.files.length) setTimeout(2000, function() {jQuery('#uploadform').submit();}) else dmsfFileFieldCount++; }); } diff --git a/config/locales/en.yml b/config/locales/en.yml index 639e96b6..81ac7eb4 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -186,4 +186,6 @@ en: :error_max_email_filesize_exceeded: "You've exceeded the maximum filesize for sending via email. (%{number} MB)" :note_maximum_email_filesize: "Limits maximum filesize that can be sent via email. 0 means unlimited. Number is in MB." :label_maximum_email_filesize: "Maximum email attachment size" + :header_minimum_filesize: "File Error." + :error_minimum_filesize: "The file %{file} is 0 bytes and will not be attached." \ No newline at end of file