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