「多言語対応:ファイルのダウンロード」の版間の差分
提供:MoodleDocs
Mitsuhiro Yoshida (トーク | 投稿記録) 細 (ファイルのダウンロードの多言語対応 を 多言語対応:ファイルのダウンロード へ移動) |
Tatsuya Shirai (トーク | 投稿記録) 編集の要約なし |
||
1行目: | 1行目: | ||
==ファイルをダウンロードするとファイル名が文字化けする== | ==ファイルをダウンロードするとファイル名が文字化けする== | ||
実際には[[ | 実際には[[多言語対応:IE固有の問題|IE固有の問題]]です.クライアントPCとして日本語WidnowsPCが多く用いられるため,インストール後の早い段階で問題になります.コースファイルやフォーラムの添付ファイルなどをダウンロードするために日本語を含むファイル名をクリックしてクライアントPCへにダウンロードすると,ファイル名が化ける場合があります. | ||
この障害はlib/filelib.php中のsend_file()内の以下の箇所を<span style="color:#ff0000">赤色</span>で示したように修正することで解決します.本家Moodle1.8.3+でも対策が講じられましたが不十分です.なお,<span style="color:#0000ff">青色</span>で示したコードはMoodle1.8.3+のあるバージョン以前は存在しなかったコードです.もしお手元のソースにこのコードが存在しない場合は<span style="color:#0000ff">青色</span>で示したコードも追加して下さい. | この障害はlib/filelib.php中のsend_file()内の以下の箇所を<span style="color:#ff0000">赤色</span>で示したように修正することで解決します.本家Moodle1.8.3+でも対策が講じられましたが不十分です.なお,<span style="color:#0000ff">青色</span>で示したコードはMoodle1.8.3+のあるバージョン以前は存在しなかったコードです.もしお手元のソースにこのコードが存在しない場合は<span style="color:#0000ff">青色</span>で示したコードも追加して下さい. |
2007年12月26日 (水) 16:38時点における版
ファイルをダウンロードするとファイル名が文字化けする
実際にはIE固有の問題です.クライアントPCとして日本語WidnowsPCが多く用いられるため,インストール後の早い段階で問題になります.コースファイルやフォーラムの添付ファイルなどをダウンロードするために日本語を含むファイル名をクリックしてクライアントPCへにダウンロードすると,ファイル名が化ける場合があります.
この障害はlib/filelib.php中のsend_file()内の以下の箇所を赤色で示したように修正することで解決します.本家Moodle1.8.3+でも対策が講じられましたが不十分です.なお,青色で示したコードはMoodle1.8.3+のあるバージョン以前は存在しなかったコードです.もしお手元のソースにこのコードが存在しない場合は青色で示したコードも追加して下さい.
後半の”半角空白を含むファイル名のファイルをダウンロードすると半角空白以降が欠けたファイル名になる問題”はオプションです.Moodleでは基本的に半角空白文字をファイル名の一部に用いることができません.もし半角空白文字もファイル名に含ませることができる改良を行っている場合には修正を適用して下さい.
//IE compatibiltiy HACK! if (ini_get('zlib.output_compression')) { ini_set('zlib.output_compression', 'Off'); } //try to disable automatic sid rewrite in cookieless mode @ini_set("session.use_trans_sid", "false"); //do not put '@' before the next header to detect incorrect moodle configurations, //error should be better than "weird" empty lines for admins/users //TODO: should we remove all those @ before the header()? Are all of the values supported on all servers? header('Last-Modified: '. gmdate('D, d M Y H:i:s', $lastmodified) .' GMT'); // if user is using IE, urlencode the filename so that multibyte file name will show up correctly on popup if (check_browser_version('MSIE')) { // $filename = urlencode($filename); if (strlen(rawurlencode($filename)) > 21 * 3 * 3) { $filename = mb_convert_encoding($filename, "SJIS-WIN", "UTF-8"); $filename = str_replace('#', '%23', $filename); } else { $filename = rawurlencode($filename); } } else if (check_browser_version('Safari')) { $filename = ""; } if ($forcedownload) { // 半角空白を含むファイル名のファイルをダウンロードすると半角空白以降が欠けたファイル名になる問題 // @header('Content-Disposition: attachment; filename='.$filename); @header('Content-Disposition: attachment; filename="'.$filename.'"'); } else { // @header('Content-Disposition: inline; filename='.$filename); @header('Content-Disposition: inline; filename="'.$filename.'"'); }