サーバー内の (PukiWiki配下以外の)フォルダをWikiで日本語で公開する†
バージョン | 1.4.7 |
投稿者 | 初心者 |
状態 | 完了 |
投稿日 | |
メッセージ†
質問箱4/172から来ました。
サーバー内の(PukiWiki配下以外)フォルダをWikiで日本語で公開するには
どうすれば良いのでしょうか
IEにて日本語名でのURL,ファイル名で表示と保存が出来るプラグインが是非欲しいのですが、可能でしょうか?
コメント†
- 質問箱4/172で回答した者ですが、つまるところ、attach プラグインの任意ファイルバージョン(ただしダウンロード機能のみ)というイメージになるのかな。 --
- ただし、完全に任意のファイルだとセキュリティホールにつながる*1ので、プラグイン内で指定した固定のディレクトリ以下のファイルしか認めないような仕組みは必要でしょう --
- サーバOS上で扱える文字種の制限で、ダウンロードさせたいファイル名とOS上でのファイル名が違う可能性もあるので、ファイルシステム上のファイル名とクライアントに提示するファイル名を別々に設定できたほうがいいかな --
- というわけで、このような仕様でいいでしょうか? --
- それから、URLを日本語(かつHTMLファイル名も日本語)というのは無理です。 --
- hogehoge.com/日本語/ というURLが欲しい場合、「日本語」の部分を「%C6%FC%CB%DC%B8%EC」と変換することで一応は可能です。 --
- ただし、そのURLをどう解釈するかはブラウザによって異なります --
- FireFoxならそれをそのページの文字コードにしたがって解釈し、「日本語」と認識しますが、IEはそのまま「%C6%FC%CB%DC%B8%EC」と受け取ります --
- また、そのURLをクリックしたとき、WEBサーバは「%C6%FC%CB%DC%B8%EC」というコンテンツを探しますので、「日本語」というコンテンツにはたどり着きません(IE, FireFoxともに) --
- これらは、多バイト文字を表現する明確なルールが無いことに起因しています。明確なルールが策定され、各ブラウザ/WEBサーバが対応完了するまでは"URLに日本語は使えない"と思ってください --
- そもそも、URLを日本語にしたい理由は何なのでしょうか?
ダウンロード時のファイル名を日本語でというのは理解できますが。
その理由次第では、それ以外の代替案を提案できるかもしれません。 --
- というわけで、プロトタイプを作ってみました → 自作プラグイン/downfile.inc.php --
- ありがとうございます、早速試してみました。結果希望する動作です。
ここで、さらに欲が出てきてしまうのですが、download配下のフォルダも指定出来るようになると嬉しいのですが。是非お願い致します。
例) Pukiwiki/download/テスト/テスト.xls
&downfile(テスト/テスト.xls,,ここをクリック);
- すいません、その後開けないファイルが出てきました。
- DR用チェックシート(様式1) .xlsはOKですが、
- デザインレビュー実施要領(様式8).xlsはNG。ファイル形式も不明で、クリック後のダイアログも保存のみで、ファイル名は8文字で毎回変わるようです。
ファイル名とかで制限はありますか?
取りあえず、ご報告まで。
宜しくお願いします。
- エラーが出る場合もありました。
- Fatal error: Cannot create references to/from string offsets nor overloaded objects in /usr/local/www/data/pukiwiki/lib/pukiwiki.php on line 112
とメッセージが出ます。
- 不具合がありましたので修正しました m(_ _)m --
- 修正ありがとうございます。開くことが出来ました。
ですが、downfile.inc.phpのフォルダ指定で、'download/テスト/'とした場合、&downfile(): file not exist; と表示され、'download/'のままで&downfile(テスト/テスト.xls)とフォルダ込みで指定すると、以前のように開く事が出来ません。
上の方で書いた感じで、&downfile()でフォルダも指定出来ると嬉しいのですが、宜しくお願いします。
- 現在のところパスでの制限は全く設けていません。パス指定でアクセスできないのだとしたら、本当にそのディレクトリに(phpから)アクセスできないのだと思います。
FTPクライアント、シェル等で実際にアクセス可能か調べてみてください。
また、文字エンコーディングについても今一度確認してみてください。(PukiWikiの種類(EUC版/UTF版)、ファイルを作成したときのエンコーディング、Windowsマシンのディレクトリをmountしているのならsamba/smbmountのパラメータ、等) --
- 遅くなりました、今確認したんですが、
- download/テスト項目1.xlsを置き、&downfile(テスト項目1.xls)の場合、保存、開くOK.
- download/テスト/テスト項目1.xlsを置き、&downfile(テスト/テスト項目1.xls)の場合、ダイアログに「開く」が出ないが「保存」は出る、ただしファイル名は「不定8文字」。
- download/test/テスト項目1.xlsを置き、&downfile(test/テスト項目1.xls)の場合、ダイアログに「開く」が出ないが「保存」は出る、ただしファイル名は「index」固定。
- マウントされているサーバーはRHLEで、サーバー側はEUC、windows側はSJIS.マウントしているサーバ(PukiWiki)はFreeBSDで、サーバー側はEUC、windows側はSJIS.(ただし、上記確認はマウントはせず、ファイルをコピーして確認してます。ファイルはEUC)
- PukiWikiはEUC版
- FFFTPにて該当フォルダにアクセスは出来ました。
- PHPの確認をしたいのですが、phpinfo.phpで確認出来ますでしょうか?他に確認方法はありますでしょうか?
- namazuでのエンコード対策はmod_encodingを使用しています、他のHPを参考にClient設定してますが、PATH設定とかも出来るのでしょうか?
- もしご存知でしたら、ご教授の程お願い致します。
- その後、開ける場合と開けない場合のURLの比較をしてみました。(長いのでURLの?plugin以降一部分)
- 開ける場合 :ファイル名のみ
?plugin=downfile&file=%A5%C7
- 開けない場合:フォルダ名/ファイル名
?plugin=downfile&file=test%2F%A5%C7
- 「/」がエンコードされている(%2F)と開けなくなってる感じですが、元々「/」はエンコードされるものなのでしょうか?宜しくお願いします。
- 訂正:今file=とname=両方ともに「/」に置き換えてみましたが、変わりませんでした(泣)。
- ちょっと対策したものをアップしました。 --
- 「/」は必ずエンコードしなければなりません
- お使いのブラウザはIE6でしょうか? 当方のIE7とFireFox2では正常にダウンロードできていました。
- ただ、ダウンロードファイル名に「/」が含まれるのは好ましくないと思われましたので、今回のバージョンではパス部分を除去するようにしました。
- &downfile(テスト/テスト.txt); とすると、download/テスト/テスト.txt というファイルを「テスト.txt」という名前で保存するように動作するはずです。
- これで症状が改善するといいのですが…
- FFFTPのホストの設定変更で、「文字コード」の「ファイル名の漢字コード」はどうなっていますか?
ここがSHIFT-JISになっていて、FFFTPのファイル一覧でファイル名が正しく表示されているすると、ディレクトリやファイル名がShift-JISで格納されているということです。
とすると、PLUGIN_DOWNFILE_DIR に "download/テスト" とEUCで記述しても、一致するディレクトリは見つからないかもしれません。
- とはいえ、ファイル名に普通に日本語を記述しても動いているようですので、文字コードの不一致というのはなさそうな気はしますが…
- 状態を「着手」に変更しました --
- 今確認してみました。問題無く動作しています。感謝、感謝です。
動作確認はマウント状態では無く、ファイルをコピーしてるので、これからマウントして確認してみます。
FFFTPでは文字コードはEUCでの確認です。
色々お手数をお掛けしますが、宜しくお願いします。結果は後ほど
- マウントでの動作も問題ありませんでした。ありがとうございます。