From af8e98a4301d3208cbe912c87ae74322be4ff16e Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Tue, 3 Feb 2015 14:16:59 +0530 Subject: [PATCH] [fix] set random filename if not found, when extracting image from html --- frappe/utils/file_manager.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/frappe/utils/file_manager.py b/frappe/utils/file_manager.py index 4b296fcb14..3c8b74c8fc 100644 --- a/frappe/utils/file_manager.py +++ b/frappe/utils/file_manager.py @@ -6,7 +6,7 @@ import frappe import os, base64, re import hashlib import mimetypes -from frappe.utils import get_site_path, get_hook_method, get_files_path +from frappe.utils import get_site_path, get_hook_method, get_files_path, random_string from frappe import _ from frappe import conf from copy import copy @@ -89,8 +89,16 @@ def extract_images_from_html(doc, fieldname): def _save_file(match): data = match.group(1) + data = data.split("data:")[1] headers, content = data.split(",") - filename = headers.split("filename=")[-1] + + if "filename=" in headers: + filename = headers.split("filename=")[-1] + else: + mtype = headers.split(";")[0] + extn = mimetypes.guess_extension(mtype) + filename = random_string(7) + extn + # TODO fix this file_url = save_file(filename, content, doc.doctype, doc.name, decode=True).get("file_url") if not frappe.flags.has_dataurl: @@ -99,7 +107,7 @@ def extract_images_from_html(doc, fieldname): return '