1

ファイルを Moodle に保存する必要があります。これは実際には問題ではありません。ここで説明されています。問題は、このファイルに誰でもアクセスできる必要があることです。したがって、www.mymoodlesite.com/temp/myfile.txtブラウザに入力してファイルにアクセスできる、たとえば URL などが必要です。ファイルをmoodledata/tempフォルダにコピーしようと思ったのですが、ファイルにアクセスするためのURLがありません..

事前にご協力いただきありがとうございます。

4

3 に答える 3

4

最後に私は私の問題を解決することができました:-)

次のようなファイルマネージャーを使用しました。

$mform->addElement('filemanager', 'my_filemanager', 'Upload a file', null, array('maxbytes' => $CFG->maxbytes, 'maxfiles' => 1, 'accepted_types' => array('*.zip')));

次に、アップロードしたファイルを次のように保存します。

if ($draftitemid = file_get_submitted_draft_itemid('my_filemanager')) {
    file_save_draft_area_files($draftitemid, $context->id, 'mod_assignment', 'my_filemanager', 0, array('subdirs' => false, 'maxfiles' => 1));
}

アップロードされたファイルにアクセスするための URL は、次のように作成できます。

file_encode_url($CFG->wwwroot . '/pluginfile.php', '/' . $this->context->id . '/mod_assignment/my_filemanager');
于 2012-01-03T08:06:34.210 に答える
2

Assuming that you have added the element like this :

$mform->addElement('filepicker', 'file', "Upload a Document", null, array('maxbytes' => 1024*1024, 'accepted_types' =>array('*.png', '*.jpg', '*.gif','*.jpeg', '*.doc', '*.rtf','*.pdf','*.txt')));

Now assuming that You get the data as the following

$data = $lesson_form->get_data()

See the code below to upload the file to a specified folder in your server. This is compatible with moodle 2.2+

$realfilename = $lesson_form->get_new_filename('file'); // this gets the name of the file

    $random =rand(); // generate some random number
    $new_file = $random.'_'.$realfilename; //add some random string to the file
    $dst = "uploads/$new_file";  // directory name+ new filename

    if($realfilename !=''){  // checking this to see if any file has been uploaded

        save_files($dst); // moodle function to save a file in given folder

    }

I faced the same problem that you're facing and it solved my problem.

N.B. -> Remember to chmod your upload folder to 0777.

于 2011-12-16T13:14:38.073 に答える
0

以下が当てはまる場合、認証なしでmoodleのファイルブラウザを介してアップロードされたファイルにアクセスできます-moodleサイトでforceloginがnoに設定されています-ファイルはフロントページサイトファイルのファイルにアップロードされます。

アップロードされたファイルは(Moodle1.9を想定して)moodledata / 1/{filepath}に保存されます。プログラムで実行する必要があるため、そこに保存し、URL/file.php/1/{filepath}を使用して参照できます。別の言い方をすれば。$CFG->datadir。'/1 /'。filepathに保存されたファイルには、$CFG->wwwroot。'/file.php / 1/'。filepath;でアクセスできます。

あるいは、moodleファイルブラウザを介してフロントページサイトのファイルにファイルを表示したくない場合は、file.phpを編集して、特別なディレクトリにあるファイルのアクセス許可の確認を忘れて、代わりにそれらを提供することができます。

これがこの編集でさらに役立つことを願っています。

于 2011-08-02T18:11:14.770 に答える