2012-03-30 5 views
1

私はユーザーがサーバーから画像をアップロードしたり削除したりすることができる簡単な画像管理ツールを作成中です。これまでのところ、それは非常に基本的なものです。私は、ファイル名に空白が含まれているファイルをアップロードすると問題が発生することを発見しました。スペースまでの名前のすべてがアップロードされたファイル名に含まれていますが、それ以上のものはありません。これの問題はあまりにも壊れた画像リンク(私はそれらを扱うことができる)ではありませんが、私の削除ツールや最も単純な "リンク解除"スクリプトを使って画像を削除することはできません。問題とその原因を見つけたら、サポート担当者に連絡を取り、2つの問題ファイルをクリアしました。残念ながら、仕事場のシステムの制約のため、私はFTPアクセスを持っていません。私は面白い "ファイルのスタック"問題を持っています

これですべて解決されたと思いますが、いいえ。私は非常に明確な警告メッセージをこのプロトタイプの管理ツールに追加しました。私は上司などいくつかの人に電子メールでこのツールについて知らせましたが、スペースを含むファイル名は機能しません。だから私の上司は何をするのですか?彼女は、ファイル名に空白を含む2つのファイルをアップロードしました。

だから私は、スクリプトに馬鹿のフィルタを追加する方法があるまで、どのように私はこれらの2つのファイルを削除することができるかもしれないことをお勧めですか?私は、人口の多いディレクトリを削除してそれを再作成しても構わない(画像のどれも意味がなく、ランダムなもの)。

これらのことを解消するためのアドバイスがない場合は、私の上司が指を切らずにばかげて行動するのを防ぐ方法についてアドバイスはありますか?

+0

ファイルをアップロードする前に入力を検証して空白がないことを確認できないのはなぜですか? – jzworkman

+0

ファイル名を引用しますか? –

+0

スペースをアンダースコアに変換しますか? –

答えて

2

私の最善の答えは、あなたが言ったように、他のすべてのファイルを別のフォルダに移動し、フォルダを削除し、フォルダを再作成します。 その後、私はファイル名に奇妙な文字やスペースを扱うためにあなたのPHPでurlencodeが必要だと思っています。 他の人を助けるかもしれない1つの質問は、あなたはLinuxかWindowsですか?

テストとして、動作するまで、アクセスできるドライブに書き込んで、動作するまで再生できるようにしてください。ライブシステムに切り替えます。この方法では、テストを削除するサポートを呼び出す必要はありません。

また、アンダースコアのすべてのスペースをクイックフィックスとして置き換えることもできます。

1

unlink()で名前をスペースで区切ってファイルを削除するときは、スペースを "\"でエスケープします。これはLinux上でのみ動作します。

関連する問題