[Hotfix] File upload fix (#5254)

* append hash if same filename found while uploading through socketio

* pass file size

* upload after filename change
This commit is contained in:
Zarrar 2018-03-23 15:13:58 +05:30 committed by Nabin Hait
parent d0f3b9b6e6
commit 577ce03fd8
2 changed files with 37 additions and 18 deletions

View file

@ -296,26 +296,38 @@ frappe.upload = {
if (opts.no_socketio || frappe.flags.no_socketio || file_not_big_enough) {
upload_with_filedata();
return;
} else {
args.file_size = fileobj.size;
frappe.call({
method: 'frappe.utils.file_manager.validate_filename',
args: {"filename": args.filename},
callback: function(r) {
args.filename = r.message;
upload_through_socketio();
}
});
}
frappe.socketio.uploader.start({
file: fileobj,
filename: args.filename,
is_private: args.is_private,
fallback: () => {
// if fails, use old filereader
upload_with_filedata();
},
callback: (data) => {
args.file_url = data.file_url;
frappe.upload._upload_file(fileobj, args, opts);
},
on_progress: (percent_complete) => {
let increment = (flt(percent_complete) / frappe.upload.total_files);
frappe.show_progress(__('Uploading'),
start_complete + increment);
}
});
var upload_through_socketio = function() {
frappe.socketio.uploader.start({
file: fileobj,
filename: args.filename,
is_private: args.is_private,
fallback: () => {
// if fails, use old filereader
upload_with_filedata();
},
callback: (data) => {
args.file_url = data.file_url;
frappe.upload._upload_file(fileobj, args, opts);
},
on_progress: (percent_complete) => {
let increment = (flt(percent_complete) / frappe.upload.total_files);
frappe.show_progress(__('Uploading'),
start_complete + increment);
}
});
}
},
upload_to_server: function(file, args, opts) {

View file

@ -84,6 +84,7 @@ def save_url(file_url, filename, dt, dn, folder, is_private, df=None):
# return None, None
file_url = unquote(file_url)
file_size = frappe.form_dict.file_size
f = frappe.get_doc({
"doctype": "File",
@ -93,6 +94,7 @@ def save_url(file_url, filename, dt, dn, folder, is_private, df=None):
"attached_to_name": dn,
"attached_to_field": df,
"folder": folder,
"file_size": file_size,
"is_private": is_private
})
f.flags.ignore_permissions = True
@ -392,3 +394,8 @@ def get_random_filename(extn=None, content_type=None):
extn = mimetypes.guess_extension(content_type)
return random_string(7) + (extn or "")
@frappe.whitelist()
def validate_filename(filename):
fname = get_file_name(filename, hashlib.md5(filename).hexdigest()[-6:])
return fname