2017-02-07 6 views
1

私はMoodle 3.1以降を使用しています。 filepickerを使ってファイルをアップロードしました。それは正常に動作しています。しかし、filepickerはアップロードされたファイル名のみを表示します。アップロードした画像をfilepickerに表示したいのですが、不可能と思われます。もう一つのオプションはfilemanagerを使うことですが、私の場合はそこにないcontextidのような余分なパラメータが必要です。アップロードした画像パスを私が作成したテーブルに挿入しています。では、filemanagerを使用してファイルをカスタムテーブルに保存するにはどうすればよいですか?Filemanagerがファイルをカスタムテーブルに保存する

file_save_draft_area_files($data->attachments, $context->id, 'mod_glossary', 'attachment', 
        $entry->id, array('subdirs' => 0, 'maxbytes' => $maxbytes, 'maxfiles' => 50)); 

答えて

0

まず、あなたの形式でファイルマネージャ要素を作成します。

$filemanageropts = $this->_customdata['filemanageropts']; 
$mform->addElement('filemanager', 'attachment',get_string('displayedcontent', 'block_helloworld'), null, $filemanageropts); 

注:添付ファイルは私のカスタム・テーブルから同じ名前です。したがって、このフィールドにはファイルitemidが設定されます。フォームのデータをロードする際に続いて

//form has been submitted 
file_save_draft_area_files($form_submitted_data->attachment, $context->id, 'block_helloworld', 'attachment', 
$form_submitted_data->attachment, array('subdirs' => 0, 'maxbytes' => 500000, 'maxfiles' => 1)); 

、::カスタム領域にファイル保存ロジックスクリプトを形成して

次に、使用してMOODLEにいわゆるドラフト領域を用意:

$draftitemid = $helloworldpage->attachment ; 
     file_prepare_draft_area($draftitemid, $context->id, 'block_helloworld', 'attachment', $helloworldpage->attachment, 
      array('subdirs' => 0, 'maxbytes' => 5000000, 'maxfiles' => 1)); 

Ressources:

+0

私のカスタムテーブルに保存したい。ここでは、mdl_filesテーブルに保存されます。 – user1690835

+0

あなたのカスタムテーブルでは、ファイルを扱う 'mdl_files'に存在するオブジェクトIDで' attachment'フィールドが設定されているので、ファイルを管理できるはずです。 –

+0

どのような状況でファイルを保存しますか? – user1690835

関連する問題