memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

学生から提出された課題(PDF)をダウンロードせずその場で開く方法

上記の通り、研究室のサーバーmoodleを立ち上げてみました。で、学生から提出された課題を開くとなぜかダウンロードされてしまいます。これは不要なファイルを開いて悪意あるコードを実行させないための配慮のようですがソースを修正することでその場(ブラウザ内)で開くように変更できます。一応、メモとして記録しておきます。

moodle_top/mod/assign/submission/file/lib.phpの70行目

(修正前) send_stored_file($file, 0, 0, true); // download MUST be
forced - security!

(修正後) send_stored_file($file, 0, 0, false); // download MUST be
forced - security!


send_stored_file関数の第4パラメータはforcedownloadのbooleanになっています。強制的にリンク上のファイルをダウンロードさせるかどうかのスイッチになっています。これをfalseにするとブラウザ内で開くことができます。

ちなみにmoodleバージョンは2.3.2+ (Build: 20121014)です。その他のバージョンでは変更箇所が異なるようです。