件名: 日本語ファイル名のアップロード

投稿日: 2008/03/11 16:57
投稿者: charley

お世話になります。 ファイル管理とメディアギャラリを使い始めましたがファイル名が日本語のファイルをアップロードすると文字化けします。 サーバー環境はWindows2000でUTF-8の設定をしていますが、このサーバーではアップロードは出来るがダウンロード時点で以下のエラーとなります。(アップロード後のファイル名・MySQL管理情報とも文字化けしています) <なぜか西欧ISO-8859-1でエラー表示される> Not Found The requested URL /filemgmt_data/files/LM317.xls was not found on this server. php.iniの日本語設定(mbstring)を変更したりしていますが現象は変わりません。 思いついて「GeeklogJapanese」様のデモサイトでやってみましたが以下のようなエラーになりました。 An error has occurred: 2 - move_uploaded_file(/var/www/virtual/geeklog.jp/demo141/htdocs/filemgmt_data/files/tmp/ohizY4DPdV.xls) [function.move-uploaded-file]: failed to open stream: 許可がありません @ /var/www/virtual/geeklog.jp/demo141/htdocs/filemgmt/submit.php line 122 array(400) { ["HTTP_POST_VARS"]=> array(7) { ["title"]=> <以下省略> デモサイトの場合は登録時点でエラーになってしまいますが「日本語のファイル名」は使えないのでしょうか?

書き込み: 日本語ファイル名のアップロード

投稿日: 2008/03/11 17:50
投稿者: maruyo

README.jpをお読み下さいませ ファイル名についての注意書きがあります。

書き込み: 日本語ファイル名のアップロード

投稿日: 2008/03/12 09:54
投稿者: charley

ご指摘有難うございました。 現在、「ファイル管理」でつまづいていましたので気づきませんでした。 「メディアギャラリー」は日本語ファイル名は使用出来ない(制限事項)ようですが、ファイル管理も原因は同じと云うことで理解してよろしいでしょうか?

書き込み: 日本語ファイル名のアップロード

投稿日: 2008/03/12 10:14
投稿者: Ivy

一般的にサーバには日本語のファイルはアップロードできない,と思ったほうが良いと思います。 例外的に,Geeklog Japaneseの場合,アバターの画像は,ユーザ名が「あいび~」だったらサーバには「あいび~.jpg」の名前で保存されるようにしていますが。サーバにはUTF-8でファイルが作成されます。

書き込み: 日本語ファイル名のアップロード

投稿日: 2008/03/12 10:29
投稿者: charley

迅速にご対応いただき有難うございます。 暫くは「日本語ファイル名」は制限と理解して使わせていただきます。 今後の強化を期待しています。

書き込み: 日本語ファイル名のアップロード

投稿日: 2008/03/12 22:33
投稿者: maruyo123

最初この問題に気がついた時に日本語のファイル名やドットを2つ以上含むファイルに対応させたかったのですがGeeklog本体とそのソースコードを大量に変更する必要があったので断念しました。 このあたりはgeeklog.com本家でまず対応していただかないと手の入れようがないので、現状は本家次第といったところです。

書き込み: 日本語ファイル名のアップロード

投稿日: 2008/03/13 11:13
投稿者: charley

お忙しい中、有難うございます。 当面は日本語ファイル名のアップロードは制限事項として了解しましたが、友人(師匠)の「turikiti」さんに相談したところ、以下の対応でアップロードは可能になりました。 但し、ちゃんと修正するには、 1 private/plugins/filemgmt/config.php にシステムファイル管理用言語を定義しておく(SJIS) 2 上記を利用して、system_file_name($filename) とかの関数を作成する。 ファイル名の変換はこれを利用する。 3 上記の修正では、見ることは出来るが、名前の変更などには対応していない。    処理は、全てindex.php 内にあるので、これを見つけて全て修正することが必要。 だそうです。 --------------------------------------------------------- /public_html/admin/plugins/filemgmt/index.php の修正 if (file_exists($tmp) && (!is_dir($tmp))) { // if this temporary file was really uploaded? $newfile = $filemgmt_FileStore .$name; COM_errorLOG("File move from ".$tmp. " to " .$newfile ); // //20080313 turikiti modified //修正の要点(アップロード時、日本語ファイル名の文字化け対応) //アップロード時点では、temp ファイル名で保存されているので、これはいじりません。 //承認時点で、tmp から通常のファイルに変更されるので、これを修正します。 //index.php 947行から 951 行め $newfile を $sjisnewfile = mb_convert_encoding($newfile,'SJIS');としています。 //処理は、$newfile と $sjisnewfile の使いわけをちゃんと考えないとえらい亊になります。 //ファイル操作のみ$sjisnewfileDB操作、内部操作は$newfileになります。 // $sjisnewfile = mb_convert_encoding($newfile,'SJIS'); $rename = @rename ($tmp,$sjisnewfile); COM_errorLOG("Results of rename is: ".$rename); $chown = @chmod ($sjisnewfile,$filemgmtFilePermissions); if (!file_exists($sjisnewfile )) { //end COM_errorLOG("Filemgmt upload approve error: New file does not exist after move of tmp file: '".$newfile ."'"); $AddNewFile = false; // Set false again - in case it was set true above for actual file $eh->show("1101"); } else { $AddNewFile = true; } -----------------------------------------------------------

書き込み: 日本語ファイル名のアップロード

投稿日: 2008/03/15 20:52
投稿者: Ivy

どうもありがとうございます! 日本語でアップできるようになればずっと便利になりますね。 特にメディアギャラリは,ファイル名を,タイトルに設定することができますから。 もうすこし具体的に修正方法がわかれば,Wikiに追記させていただきますが。

書き込み: 日本語ファイル名のアップロード

投稿日: 2008/03/18 17:37
投稿者: charley

お世話になります。 ファイル管理で日本語ファイル名が扱えない件 前回の修正では「削除」のとき実ファイルが削除できていない問題がありましたがこれを対応しました。 また、「修正」時点でファイル名の変更が許されていますが対応できていないためファイル名は表示のみに変更ししました。 今回の修正は関数を2個追加し、ファイル名関連の変更3箇所、 「修正」時のファイル名表示の変更1箇所です。 変更箇所は「turi-kiti」で検索してください。 <対象ファイル> geeklog公開領域/admin/plugins/filemgmt/index.php 評価はWindows2000のみで行っています。他のOSは動作するか不明です。 変更箇所が多いためとりあえず(非力な自宅サーバーですが・・・) http://apc9.com の「ダウンロード」からDLできます。使えるようでしたらご利用ください。 「Geeklog Japanese」の関係者様、「turikiti」様、ありがとうございました。

書き込み: 日本語ファイル名のアップロード

投稿日: 2008/03/19 23:05
投稿者: Ivy

どうもありがとうございます! Wikiのファイル管理プラグインのページからリンクさせていただきます Surprised!

書込: 日本語ファイル名のアップロード

投稿日: 2010/03/29 10:32
投稿者: kitani

1.4.1の頃にダウンロードに入れた日本語ファイル。 その当時はOKでしたが、1.5.1以降にしてからどうやらアクセスできなくなった模様。 見てみると、ファイル名が文字化けしていました。 これを直接Samba経由で変更してあげると、アクセスできるようになりました。 まぁそういう手もあるっていえばありますよねぇ。

Geeklog Japan - 掲示板
https://www.geeklog.jp/forum/viewtopic.php?showtopic=9947