[前][次][番号順一覧][スレッド一覧]

mysql:1274

From: egashira <egashira <egashira@xxxxxxxxxx>>
Date: Tue, 12 Oct 1999 11:47:15 +0900
Subject: [mysql 01274] Re: 登録時に同じレコードの値を使う良い方法ありますか?

松本様

> そこで江頭さんに質問なんですが、ファイルをアップロードする時の
> ファイル名は、下記1.のように取得し、DBにまず登録してから
> ファイルをアップロードしてますでしょうか?
> できれば、時間のかかるファイルアップロードをDB登録より先に
> 行わせたいのですが、さらに負荷のかからない方法は思いつきませんで。。

私のケースとちょっと異なるので実動実績がありませんが
おそらく一度にやってしまったほうが良いと思います。

まずFORMでファイルをアップロードする。
(想定スクリプト=uptest.php3)
(想定アップロードファイル=test.gif)

<FORM ENCTYPE="multipart/form-data" ACTION="uptest.php3" METHOD=POST>
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000">
Send this file: <INPUT NAME="userfile" TYPE="file">
<INPUT TYPE="submit" VALUE="Send File">
</FORM>

実行後のuptest.php3で受け取った変数は次のようになります。

$userfile : /tmp/php00305aaa
$userfile_name : test.gif
$userfile_size : 801
$userfile_type : image/gif

$userfileというのはアップロードされたファイルの一時(ディレクトリと)ファイル
です。

uptest.php3では次のことを行います。

1.$userfile_nameか$userfile_typeから拡張子を取得する。
  (gif or jpg これ以外はエラー制御処理)
2.mysqlへinsertする。
3.mysql_insert_id()でidを取得する。
4.id + 拡張子でファイル名を組立
5.一時ファイル(/tmp/php00305aaa)を4.で組立てたファイル名で所定のディレクトリ
へコピー
6.必要があればパーミッション等の変更処理

<注意>
一時ファイルはuptest.php3内だけ有効です。スクリプト終了時は自動で削除されま
す。

MAX_FILE_SIZEはに PHP3.iniやApache .confで指定されたファイルサイズより大くで
きないそうです。

------------------------------------------------
江頭正敏 egashira@xxxxxxxxxx
------------------------------------------------



[前][次][番号順一覧][スレッド一覧]

      1264 1999-10-08 01:30 [kouichi matsumoto <m] 登録時に同じレコードの値を使う良い方法ありますか?
      1265 1999-10-08 10:33 ┣[とみたまさひろ <tomm]                                       
      1266 1999-10-07 22:41 ┗[egashira <egashira@x]                                       
      1273 1999-10-12 03:28  ┗[kouichi matsumoto <m]                                     
->    1274 1999-10-12 11:47   ┗[egashira <egashira@x]