In a custom doctype, I have “attach” field types to upload specific documents. I want those documents to be stored in a specific place in the file manager. Is there a way to edit the “attach” field type to have it that way. Thank You.
Does anyone have an update on this?
I have the Same Problem. Please help us. I am proving the below link.
Thank you.
1 Like
Is there any solution ?
Thanks and Regards
Akshay
No I have the same question ?
If someone from the frappe team could answer
This could work…
- add an on_update hook for File (in hooks.py)
- check if it is attached to your custom doctype, if so move it to your required folder
No, not tried.
I have used the below code to solve the problem:
@frappe.whitelist()
def capture(file=None):
result , response_api = image_api(file)
if result:
docname = frappe.get_request_header("Referer").split("/")[-1]
print(f"{file}")
file_content = frappe.local.uploaded_file
file_name_old = frappe.local.uploaded_filename
folder_path = f"/home/frappe_dev/frappe-bench/sites/developement.expd/public/files"
os.makedirs(folder_path, exist_ok=True)
file_path = os.path.join(folder_path, file_name_old)
with open(file_path, "wb") as file:
file.write(file_content)
host = frappe.request.host
# Check if the port is needed (adjust according to your environment)
port = ":8000" if "localhost" in host or "127.0.0.1" in host else ""
# Construct the dynamic URL
sys_file_path = f"http://{host}{port}/files/{file_name_old}"
email_id = frappe.session.data.get('user')
file_doc = frappe.new_doc("File")
file_doc.name = "random"
file_doc.file_name = file_name_old
file_doc.file_url = sys_file_path
file_doc.attached_to_name = docname
file_doc.folder = "Home"
file_doc.attached_to_doctype = "Face Detection passport"
file_doc.attached_to_field = 'upload_image'
file_doc.insert()
frappe.db.set_value("File", file_doc.name, "file_url", f"{sys_file_path}")
return str(response_api.json())
frappe.ui.form.on("Face Detection passport", {
upload_image: function (frm) {
if (frm.doc.__islocal) {
frm.save().then(() => {
uploadFile(frm);
});
} else {
uploadFile(frm);
}
}
});
function uploadFile(frm) {
new frappe.ui.FileUploader({
method: 'frappe.image_detection.doctype.face_detection_passport.face_detection_passport.capture',
make_attachments_public: "False",
dialog_title: "Upload Files",
disable_file_browser: "False",
allow_link: "True",
frm: frm,
on_success(file, response) {
frappe.msgprint(`${"Server response:"+response.message}`, "Message"); // Log the response for debugging
frappe.show_alert({
message: __('File uploaded.'),
indicator: 'green'
}, 5);
frm.refresh();
}
});
}
2 Likes
im finding a solution to disable all option except my device , and upload, from upload dialoged ,
if any way is there it will be help full for me , because we need to restrict user to find out other user document, from library ,
and