0

mySQL に挿入するレコードごとに写真をアップロードする必要があります。私はすでに基本的な挿入スクリプトを作成しました。すべてのレコード挿入に画像を含めることができるように、既存のスクリプトをどのように変更しますか? 画像は、任意の形状またはサイズにすることができます。とてもシンプルです。写真のためだけにフォームを簡略化しました。どんな助けでも大歓迎です。

写真のルート ディレクトリに「photos」というフォルダを作成しました。

<?
$order = "INSERT INTO reg_add (connect_date, 
   reg, 
   first_name, 
   last_name)

VALUES

('$_POST[connect_date]', 
     '{$_POST[reg]}nv', 
     '$_POST[first_name]', 
     '$_POST[last_name]')";

$new_image = 'photos/'.basename( $_FILES['image']['name']);
    if(move_uploaded_file($_FILES['image']['tmp_name'], $new_image)) {
        // The images was uploaded
  } else{
header("location: reg_add_fail_IMAGE.php"); 
}

$result = mysql_query($order);
?>

形:

<form id="form_register" method="POST" action="reg_add.php">

   <input class="req-string bx short" type="text" name="connect_date" id="connect_date">
   <input type="hidden" name="MAX_FILE_SIZE" value="100000">
   <input class="req-string bx long caps" type="text" name="reg" id="reg">
   <input class="req-string bx long" type="text" name="first_name">
   <input class="bx long" type="text" name="last_name">

   Choose a image to upload: <input name="image" type="file">
   <input id="rbSubmit" class="rb2 rbSubmit" type="submit" value="submit">
</form>
4

1 に答える 1

0

まず、を使用して画像をアップロードすることはできません<textarea>

HTML

<form action="savedata.php" method="POST" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
    Choose a image to upload: <input name="image" type="file" /><br />
    <input type="submit" value="Submit" />
</form>

enctype="multipart/form-data画像がフォームと一緒に送信されるように、含めることが重要であることに注意してください。

PHP FILE を含むフォームが PHP スクリプトに送信されると、ファイルはサーバー上の一時的な場所に保存され、変数$_FILEが使用可能になります。この変数は、このファイルに関する情報、一時的な名前と実際の名前、サイズなどを保持します。

アップロードした画像を、配置したいディレクトリに移動する必要があります。

// This will be the location for the image
$new_image = 'photos/'.basename( $_FILES['image']['name']);

if(move_uploaded_file($_FILES['image']['tmp_name'], $new_image)) {
   // The images was uploaded
} else{
    // The image failed to upload
}

$new_imageこれで、画像の場所を参照するためにデータベースに保存できます。

考慮すべきいくつかのこと

  • 同名のファイルが既に存在するか確認する
  • データベース行ごとに最大 1 つの画像がある場合は、データベースの ID を使用して画像に名前を付けることができます。これを行うには、最初にデータを INSERT し、次にINSERT クエリの直後にINSERT使用して最後の挿入 ID を取得する必要があります。$id = mysql_insert_id();次に、これを変数 $new_image に組み込みます
于 2012-04-28T14:18:18.703 に答える