-1

ここでは、複数の画像をデータベースに挿入しようとしていますが、このコードでは発生しません。画像の名前のみをデータベースに挿入し、画像を特定のパスに移動しています。単一の画像のアップロードの場合、複数の画像をアップロードしようとするとうまくいきません。あなたのアイデアを提案してください。すべてに感謝します。私はPHPの初心者で、学ぼうとしています。

 $img_name = $_FILES['banner']['name'];
 $img_size = $_FILES['banner']['size'];
 $img_temp = $_FILES['banner']['tmp_name'];
 $pht_name = $_FILES['photos']['name'];
 $pht_size = $_FILES['photos']['size'];
 $pht_temp = $_FILES['photos']['tmp_name'];
 $pht_name_a = $_FILES['photos_a']['name'];
 $pht_size_a = $_FILES['photos_a']['size'];
 $pht_temp_a = $_FILES['photos_a']['tmp_name'];
 $pht_name_b = $_FILES['photos_b']['name'];
 $pht_size_b = $_FILES['photos_b']['size'];
 $pht_temp_b = $_FILES['photos_b']['tmp_name'];

include "_lib/_req/conn.php";
// section 1 (page contents)
$name = $pg_name . '_540x165_' . '.' . $img_ext;
$path = "_img\\gallery\\540x165\\";
$target_path = $path . $name;
if(move_uploaded_file($img_temp, $target_path)){
$insert = "INSERT INTO page_content (p_c_id, p_c_name, p_c_link, p_c_group, p_c_text, p_c_img, p_c_tag) 
VALUES ('', '$pg_name', '$pg_link', '$pg_group', '$text', '$name', '$pg_tag')";
$query = mysql_query($insert);              
}
else{ die(mysql_error()); }
$md5_6 = substr(md5(rand()),0,6);
$name_a = $pg_name . '_258x130_' . $md5_6 . '.' . $pht_ext;
$path_a = "_img\\gallery\\258x130\\";
$target_path_a = $path_a . $name_a;
if(move_uploaded_file($pht_temp, $target_path_a)){
    $insert_a = "INSERT INTO page_photos (p_p_id, p_p_name, p_p_img) 
    VALUES ('', '$pg_name', '$name_a')";
    $query_a = mysql_query($insert_a);
}
else{ die(mysql_error()); }
// page photo no.2
$md5_7 = substr(md5(rand()),0,7);
$name_b = $pg_name . '_258x130_' . $md5_7 . '.' . $pht_ext_a;
$path_b = "_img\\gallery\\258x130\\";
$target_path_b = $path_b . $name_b;
if(move_uploaded_file($pht_temp_a, $target_path_b)){
    $insert_b = "INSERT INTO page_photos (p_p_id, p_p_name, p_p_img) 
    VALUES ('', '$pg_name', '$name_b')";
    $query_b = mysql_query($insert_b);
}
else{ die(mysql_error()); }
4

1 に答える 1

0

お役に立てば幸いです。

コードで以下のクエリのそれぞれのセクションを使用してください。「p_p_id」が主キーであると想定されるため、クエリから削除しました。

     //page_content
     $insert = "INSERT INTO page_content (p_c_name, p_c_link, p_c_group, p_c_text, p_c_img, p_c_tag) VALUES ('$pg_name', '$pg_link', '$pg_group', '$text', '$name', '$pg_tag')";

     //page_photos
     $insert_a = "INSERT INTO page_photos (p_p_name, p_p_img) VALUES ('$pg_name', '$name_a')";

     //page_photos
     $insert_b = "INSERT INTO page_photos (p_p_name, p_p_img)  VALUES ('$pg_name', '$name_b')";

アップロードパスとその許可を確認してください。

   $path = "_img\\gallery\\540x165\\";   

Change it as 

   $path = "_img/gallery/540x165/";   //in all 

複数ファイルのアップロードについては、

入力ファイルタグは、

   <input type='file' name='file[]' multiple>

次に、以下のように複数のファイルをアップロードするためのサンプル PHP コード、

         $count=0;             
         foreach ($_FILES['file']['name'] as $filename) 
        {
            $target='';//folder path
            $tmp=$_FILES['file']['tmp_name'][$count];
            $count=$count + 1;
            $target=$target.'/'.basename($filename);
            move_uploaded_file($tmp,$target);
              // your insert query here              

        }

詳細については、http://php.net/manual/en/features.file-upload.multiple.phpをご覧ください。

于 2013-10-31T21:06:56.667 に答える