回答:
擬似/迅速なコードでは、これは私がそれに取り組む方法です。カスタムモジュールで...
2つの列、fidとmd5を持つテーブルをデータベースに作成します。
ファイルを作成するたびに、一意であると考えるもののmd5()がそのdbにあるかどうかを確認してください。たとえば、
a。TABLEからfidを選択します。md5= ab3783ea6c83bcd9383eef778
b。fidがoopsの場合、ファイルblah blah blah
c。さもないと
そのファイルのfidとmd5()をそのテーブルに保存します。
画像コンテンツを作成するときに、このロジックをすべて検証フックに配置できます。それを上書きできるロールなどを設定することもできます。
さて、物事のmd5()化に。
ファイル名は簡単に変更され、とにかく実際にdrupalに送信されるとは思わない-代わりに事実の後でそこに作成される-本当にそれを使用しますか?
ファイルの内容はより良いアプローチかもしれません。
したがって、md5にはクイックmd5_file(PATHTOFILE)を設定できます。
ここで、このシステム全体またはユーザーごとにこのオプションを実行したいとします。たとえば、1人のユーザーが1つの画像の複数のコピーをアップロードしたくない場合や、システム全体で1つの画像のみをアップロードしたい場合などです。
上記の表に別の列uidを追加し、それも確認してください。例:
TABLEからfidを選択します。md5= ...およびuid = $ user-> uid
とにかく、これらはここD6landでの朝の最初のエスプレッソの後の私の簡単な考えです。たぶん、D7にはすでにいくつかの機能が組み込まれており、そのホイールを再発明しています:)
このためのモジュール、ファイルハッシュモジュールができました。彼のアプローチの概要を説明してくれたJimajammaに感謝します。これにより、Google経由でこのモジュールを見つけることができました。
このスレッドに示されているように、このモジュールは現在、重複ファイルのアップロードをグローバルに無効にするために使用できます。
これを実現するには、カスタムモジュールを作成する必要があると思います。私は以前、これを少しずつ行ってきました。フォームを使用して、フィールドを確認します。ファイルの名前とサイズを取得するために、いくつかの変数がこれら2つを取得していることを確認してください。
次に、if()を使用して、if(!isset($ field ['name'])&&!isset($ field ['size']))を確認します。これに基づいて、フォームにエラーメッセージを設定します。
お役に立てば幸いです。