2010-11-22 2 views
0

現在、私はシステムのサイズを変更し、必要な数の画像を作成し、Webサーバーのファイルシステムに保存しています。また、私はmysqlの画像basenameのデータベースを作成して入力します。 例えば5つのイメージをアップロードしてベースネームは372FDSCとなり、ファイルシステムの各イメージに_0、_1などが追加されるので、イメージは372FDSC_0.jpegのように見えます。mysqlにイメージ名を保存しますか?

どこに問題がありますか?それは私がコード内の画像名を知らないので、私は新しい画像を削除またはアップロードできないということです。

記事の画像名を保存するためのより良い解決策がありますか?すべての名前(372FDSC_0.jpgeg; 372FDSC_01.jpegなど)を保持するmysqlの行と同様に、新しいファイルを削除またはアップロードすると、どのファイル名を使用できるかがわかります。

私はこのことが誰にも分かりやすいと言いたいのですが、私は必要な詳細を追加したいと思います。

+0

ここでのすべての回答は、私が探していたものではありませんが、おそらく私の貧しい質問のためです。だから私はイメージワークフローを書き直すのに少し助けになるものを選んだ。 – arma

答えて

2

イメージ名の最後にタイムスタンプを使用することができます。そのため、イメージは一意であると確信しています。

$new_name = $basename . "_" . time() . $extension; 
+0

Btw私はその時間()関数が一意の値を保証されていないことに気づいたこのいたずらスクリプトをしばらく時間後に。私のスクリプトは速いので、同じタイムスタンプを持つすべての画像のようになります。 だから、私はおそらく各画像名のために私自身の12記号の文字列を生成するでしょう。 – arma

+0

ああ、サムネイルや他の画像に同じ名前の名前を付けると、その名前はオフになります。 – arma

+0

各画像の後にsleep()を使用すると、タイムスタンプが変更されます。サムネイルと画像のタイムスタンプを同じにするには、タイムスタンプを変数に保持する必要があります。 $ time = time()と同様に、タイムスタンプがキャプチャされます。 – Flipke

1

上記で述べたか、また、あなたのイメージ画像ではなく372FDSCの命名を含んでいるものに基づいて説明的な名前を与えることができるのようにして、タイムスタンプを使用することができます。

1

'basename'、 'no of images'、 'article name'という3つのデータベーステーブルがあります。 すべての画像を取得するためのループを作成します。 たとえば、記事「abc」に5つの画像がある場合。次に使用する

for($i=0;$i<5;$i++) 
    $images[]=$basename.$imageno; 

$ basenameはデータベースから取得したベースネームで、$ imagenoにも同じことが適用されます。

0

画像の名前を変更するには、の記事IDフィールドを使用できます。たとえば、記事IDが237の場合、画像は237_1.jpg、237_2.jpgなどとなります。

この場合、画像名もdbに保存する必要はありません。

関連する問題