PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。
Q&A
解決済
2回答
9792閲覧
総合スコア51
0グッド
4クリップ
投稿2014/09/04 00:34
0
4
ファイルをアップロードし、そのファイルに一意な名前をつけたいと思っています。 PHPで一意なファイルが生成できる関数などありましたら教えていただけませんか? 宜しくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答2件
ベストアンサー
基本的にuniqid関数で十分じゃないでしょうか。 それかmicrotime関数そのままなんか楽かつファイル名ソートすればアップロード順に並んで良いかと思います。
ただマニュアルにも書いてある通りセキュリティ性はなくファイル名の推測とかできてしまうので、 「アップしたファイルにブラウザからアクセスできてしかも特定のユーザしか見ちゃダメ」 みたいなシステムだったらこことか、こことか、こことかに書いてあるみたいに ランダム性のある文字列をuniqidの引数に渡してなおかつそれをハッシュする。 みたいに推測困難なファイル名にする必要がありますね。
あるいはマニュアルに書いてあるみたいにopenssl_random_pseudo_bytes関数使うかでしょうか。 ただこっちはmicrotimeベースに作ってるわけじゃないので、 既存のファイル名舐めて重複してないかチェックするみたいな実装が必要かと思いますが。 あと返ってくるのがバイトなのでマニュアルの例みたいに変換してやる必要もありますね。
投稿2014/09/04 15:08
総合スコア843
回答へのコメント
2014/09/05 00:37
tempnam関数を使ってみるのも1つの方法ではないかなと思います。ただ、これで作るとパーミッションは600になるので、厳しすぎる場合には調整が必要です。
投稿2014/09/05 00:16
総合スコア145183
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.48%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
PHP ユニークIDを生成してファイルの名前にしたい
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2014/09/05 00:37