[心得]ユーザがアップロードしたファイルは必ず名前を書き換えるべし

Read More

今日は超~基本的な話。


最初に心得。
・ユーザがアップロードしたファイルはそのままのファイル名でサーバに保存しないこと。
・サーバに保存するファイル名は必ず英語(と一部の記号)のみの文字列で構成すること。
※一部の記号とは"_"(アンダーバー)と"."(ドット)



一般的なユーザはファイル名によく日本語を使ったりする。
それはしょうがない。


しかしそのままのファイル名でサーバにアップロードをしてしまうと色々と問題が出る。


日本語のファイル名はLinuxサーバでは文字化けするのだ。
# 正確にはWindowsで日本語のファイル名をつけた場合。
# 厳密にいうとMacとLinuxのファイル名の文字エンコードも違う。

だがまだ文字エンコードの問題ならばFTPクライアントで解決することができる。


だからこれだけでファイルの変名を必ずしろと言ってるわけではない。


ファイル名に使っちゃダメな記号があるのだ。

ファイル名として利用できる記号の制御はOSに依存するので、
Windowsだと" "(半角スペース)とか"@"(アットマーク)、Linuxだと"/"(スラッシュ)、"\"(円マーク)以外となる。


例えばWindowsで" "(半角スペース)を使ったファイル名をLinuxサーバにそのままアップロードしてしまうと、
サーバからファイルがDLができなくなってしまう。

最悪ファイルに触れなくなる。

変名や削除が完全にできないわけじゃない。
ただ色々とめんどくさい


一部のFTPクライアントではこれらの記号を別の記号に書き換えてDLしたりできるものもあるがこれも万能ではない。
細かい設定ができなかったりする。



まあそういった具合に他OSで扱う時に影響が出そうな記号は最初から使わなければよいという結論になる。

つまりシステム側で変名を行えば、文字エンコードと記号の問題は一気に解決する。




こういう問題は複数のOSを扱う環境だと必ずぶつかる。

つまらん時間を使いたくないのなら冒頭で述べたように、
アップロードされたファイルはプログラムで名前を書き換える

これを癖付けた方がよい。



なお当然のことながら、日本語と記号の問題はユーザがアップロードしたファイルに限ったことではない。
システムのファイルも然り。


サーバに置いてあるファイル全てにおいて共通して言えることだ。
すなわちファイル名は必ず英字(と一部の記号)のみで構成すること






…うん、こんなのはえらそうに記事にするようなレベルの話じゃない。

プログラマの「プ」の字あたりで学ぶことだ。




-- 2012/06/19 修正 --
・文中の"文字コード"表記の一部を"文字エンコード"に変更。
・ファイル名に利用する記号に"."(ドット)を追加。



Comments(1)

1  115ちゃん  2012/06/25 (月) 10:37 ID:XXXXXXXXX
わかりやすい説明!