我使用表單上傳圖片。 我有2個表,一個是product_profile,另一個是product_image。Php + Mysql + Multiupload圖片文件
在我的表格中,我有2個按鈕。一個上傳product_profile的圖片,另一個上傳product_image中的圖片。
但現在我有一個問題,如果,否則如果和其他。它位於「//檢查所有字段不爲空」
當我只爲product_image插入文件「else if(empty($ imgFileProduct))」without insert for profile_image「else if(empty($ imgFile))」正確處理消息「請選擇圖像文件」。
但是,當我只插入profile_image,他插入數據庫並上傳文件,而不檢查product_image是否爲空,並且我有以下消息「對不起,只有JPG,JPEG,PNG & GIF文件是允許的。而不是「請選擇圖像文件(S)」。
感謝您的幫助,在這一整天。
<?php
error_reporting(~E_NOTICE);
require_once 'dbconfig.php';
if(isset($_POST['btnsave']))
{
$catalogname = $_POST['catalog_name'];
$catalogmaker = $_POST['catalog_maker'];
$catalogtypes = $_POST['catalog_types'];
$catalogscale = $_POST['catalog_scale'];
$catalogedition = $_POST['catalog_edition'];
$imgFile = $_FILES['profile_image']['name'];
$tmp_dir = $_FILES['profile_image']['tmp_name'];
$imgSize = $_FILES['profile_image']['size'];
$imgFileProduct = $_FILES['product_image']['name'];
$imgSizeProduct = $_FILES['product_image']['tmp_name'];
$tmp_dirProduct = $_FILES['product_image']['size'];
//Check all fields are not empty
if(empty($catalogname)){
$errMSG = "Please Enter Product Name.";
}
else if(empty($catalogmaker)){
$errMSG = "Please Enter a Maker.";
}
else if(empty($catalogtypes)){
$errMSG = "Please Enter a Types.";
}
else if(empty($catalogscale)){
$errMSG = "Please Enter a Scale.";
}
else if(empty($catalogedition)){
$errMSG = "Please Enter a Edition.";
}
else if(empty($imgFile)){
$errMSG = "Please Select Image File.";
}
else if(empty($imgFileProduct)){
$errMSG = "Please Select Image File(S).";
}
//Check all fields are not empty
else
{
$upload_dir = 'product_images/'; // upload directory
$imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION));
$valid_extensions = array('jpeg', 'jpg', 'png', 'gif');
$userpic= rand(1000,1000000).".".$imgExt;
if(in_array($imgExt, $valid_extensions)){
if($imgSize < 5000000){
move_uploaded_file($tmp_dir,$upload_dir.$userpic);
}
else{
$errMSG = "Sorry, your file is too large.";
}
}
else{
$errMSG = "Sorry, only JPG, JPEG, PNG & GIF files are allowed3.";
}
if(!isset($errMSG)){
$stmt = $DB_con->prepare('INSERT INTO id_catalog(name,maker,types,scale,edition,pic) VALUES(:uname, :umaker, :utypes, :uscale, :uedition, :upic)');
$stmt->bindParam(':uname',$catalogname);
$stmt->bindParam(':umaker',$catalogmaker);
$stmt->bindParam(':utypes',$catalogtypes);
$stmt->bindParam(':uscale',$catalogscale);
$stmt->bindParam(':uedition',$catalogedition);
$stmt->bindParam(':upic',$userpic);
if($stmt->execute()){
$successMSG = "new record succesfully inserted ...";
header("refresh:5;index.php"); // redirects image view page after 5 seconds.
$last_id = $DB_con->lastInsertId();
echo "New record created successfully. Last inserted ID is: " . $last_id;
}
else{
$errMSG = "error while inserting....";
}
}
{
foreach($_FILES['product_image']['tmp_name'] as $key => $tmp_dirProduct){
$imgFileProduct = $key.$_FILES['product_image']['name'][$key];
$imgSizeProduct =$_FILES['product_image']['size'][$key];
$tmp_dirProduct =$_FILES['product_image']['tmp_name'][$key];
$upload_dirProduct = 'product_images/';
$imgExtProduct = strtolower(pathinfo($imgFileProduct,PATHINFO_EXTENSION));
$valid_extensionsProduct = array('jpeg', 'jpg', 'png', 'gif');
$productpic= rand(1000,1000000).".".$imgExtProduct;
{
if(in_array($imgExtProduct, $valid_extensionsProduct)){
if($imgSizeProduct < 5000000){
move_uploaded_file($tmp_dirProduct,$upload_dirProduct.$productpic);
}
else{
$errMSG = "Sorry, your file is too large.";
}
}
else{
$errMSG = "Sorry, only JPG, JPEG, PNG & GIF files are allowed2.";
}
if(!isset($errMSG)){
$stmt1 = $DB_con->prepare('INSERT INTO id_images(name_pic) VALUES(:uproductpic)');
$stmt1->bindParam(':uproductpic',$productpic);
if($stmt1->execute()){
$successMSG = "new record succesfully inserted ...";
header("refresh:5;index.php"); // redirects image view page after 5 seconds.
$last_id = $DB_con->lastInsertId();
echo "New record created successfully. Last inserted ID is: " . $last_id;
}
else{
$errMSG = "error while inserting....";
}
}
}
}
}
}
}
?>
請刪除無關的問題的代碼的一部分。您已提交大約150行代碼。 – OptimusCrime
對不起@OptimusCrime。我編輯並刪除了html。 – Manada
您的$ _FILES是一個數組,因此您必須遍歷它們並分別插入它們。當你從輸入中刪除多個和[]時,你不會發送一個數組,因此它可以工作。 – xjx424