Trong mã giả / nhanh, đây là cách tôi sẽ tiếp cận nó. Trong một mô-đun tùy chỉnh ...
Tạo một bảng trong db, với hai cột, fid và md5.
Mỗi lần bạn tạo một tệp, hãy kiểm tra xem md5 () của bất cứ thứ gì bạn cho là duy nhất có trong db đó không, ví dụ:
a. chọn fid từ BẢNG trong đó md5 = ab3783ea6c83bcd9383eef778
b. Nếu fid thì oops, đã xuất hiện tập tin blah blah blah
c. nếu không thì
Lưu trữ tập tin đó là fid và md5 () trong bảng đó.
Bạn có thể đặt tất cả logic này vào móc xác nhận khi bạn đang tạo nội dung hình ảnh. Bạn thậm chí có thể thiết lập các vai trò có thể ghi đè lên nó, v.v.
Bây giờ, đến md5 () ing của sự vật.
Tên tệp dễ dàng thay đổi và tôi không nghĩ rằng nó thực sự được gửi đến drupal - nhưng thay vào đó, nó được tạo ra ở đó sau khi thực tế - vậy bạn có thực sự muốn sử dụng nó không?
Nội dung của tập tin có thể là một cách tiếp cận tốt hơn.
Vì vậy, md5 có thể được tạo ra với md5_file (PATHTOFILE) nhanh chóng.
Bây giờ, giả sử bạn muốn có tùy chọn làm rộng hệ thống này hoặc cho mỗi người dùng, ví dụ: bạn không muốn một người dùng tải lên nhiều bản sao của một hình ảnh hoặc bạn muốn chỉ có một hình ảnh chính xác được tải lên trên toàn hệ thống.
Chỉ cần thêm một cột uid khác vào bảng trên và kiểm tra nó, ví dụ:
chọn fid từ BẢNG trong đó md5 = ... và uid = $ user-> uid
Dù sao, đây chỉ là những suy nghĩ nhanh chóng của tôi sau buổi espresso đầu tiên vào buổi sáng ở D6land. Có lẽ D7 đã tích hợp sẵn một số thứ này và tôi một lần nữa phát minh lại cái bánh xe đó :)