Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为一个产品存储多个图像_Php_Amazon Web Services_Amazon S3 - Fatal编程技术网

Php 为一个产品存储多个图像

Php 为一个产品存储多个图像,php,amazon-web-services,amazon-s3,Php,Amazon Web Services,Amazon S3,我正在AWS上使用PHP/MYSQL开发一个基本的电子商务网站。我只需要知道如何为一个产品存储多个大小不同的图像 问题是,将文件系统中的映像与数据库中的产品互连的最佳方式是什么: 我在想: 保留对amazon s3上为此产品动态创建的唯一文件夹的引用 在db中创建新表(类似于product_和_images),我们将在其中保存有关product和images的信息 谢谢您可以在数组中写入文件的路径并序列化()它们。然后它可以被写入数据库。您可以在数组中写入文件路径,并序列化()它们。然后就可以用

我正在AWS上使用PHP/MYSQL开发一个基本的电子商务网站。我只需要知道如何为一个产品存储多个大小不同的图像

问题是,将文件系统中的映像与数据库中的产品互连的最佳方式是什么:

我在想:

保留对amazon s3上为此产品动态创建的唯一文件夹的引用

在db中创建新表(类似于product_和_images),我们将在其中保存有关product和images的信息


谢谢

您可以在数组中写入文件的路径并
序列化()
它们。然后它可以被写入数据库。

您可以在数组中写入文件路径,并
序列化()
它们。然后就可以用DB来写了

Hope I'm Able to understand your problem. Suppose, There are 2 tables. i.e. 'Product' table and 'ProductImages' table.

'Product' table having 3 column i.e ProductNo(Primary Key, Auto-Incremented), ProductName, ProductPrice
'ProductImages' having 3 column i.e ImageNo(Primary Key, Auto-Incremented), ProductNo, ProductImage
产品信息.php

<form method='POST' action='Submit-Product-Information.php' enctype='multipart/form-data'>
    Product Name: <input type='text' name='ProductName'>
    Product Price: <input type="text" name="ProductPrice">
    Product Image: <input type='file' name="ProductImage[]" multiple> //Since, Product Images are multiple.
</form>
<?
extract($_POST);

//First Insert Product Details
$sql = 'INSERT INTO Product(ProductName,ProductPrice)
       VALUES(:ProductName,:ProductPrice)';
$q = $conn->prepare($sql);  
$q->execute($task);

$ProductNo = $conn->lastInsertId(); //Get Product No

$TotalUploadedFiles=count($_FILES['ProductImage']['name']);

for($i=0;$i<$TotalUploadedFiles;$i++)
{
                $UploadedFileName=$_FILES['ProductImage']['name'][$i];
                if($UploadedFileName!='')
                {
                                $upload_directory = "Product Image/"; //Product Image Folder, Where you will upload Product Images
                                $TargetPath=time().$UploadedFileName;
                                if(move_uploaded_file($_FILES['ProductImage']['tmp_name'][$i], $upload_directory.$TargetPath))
                                {    
                                    $sql = 'INSERT INTO ProductImages(ProductNo,ProductImage)
                           VALUES(:ProductNo,:TargetPath)';
                                    $q = $conn->prepare($sql);  
                                    $q->execute($task);                 
                                }
                }
}
?>

产品名称:
产品价格:
产品图像://因为,产品图像是多个的。
提交产品信息。php

<form method='POST' action='Submit-Product-Information.php' enctype='multipart/form-data'>
    Product Name: <input type='text' name='ProductName'>
    Product Price: <input type="text" name="ProductPrice">
    Product Image: <input type='file' name="ProductImage[]" multiple> //Since, Product Images are multiple.
</form>
<?
extract($_POST);

//First Insert Product Details
$sql = 'INSERT INTO Product(ProductName,ProductPrice)
       VALUES(:ProductName,:ProductPrice)';
$q = $conn->prepare($sql);  
$q->execute($task);

$ProductNo = $conn->lastInsertId(); //Get Product No

$TotalUploadedFiles=count($_FILES['ProductImage']['name']);

for($i=0;$i<$TotalUploadedFiles;$i++)
{
                $UploadedFileName=$_FILES['ProductImage']['name'][$i];
                if($UploadedFileName!='')
                {
                                $upload_directory = "Product Image/"; //Product Image Folder, Where you will upload Product Images
                                $TargetPath=time().$UploadedFileName;
                                if(move_uploaded_file($_FILES['ProductImage']['tmp_name'][$i], $upload_directory.$TargetPath))
                                {    
                                    $sql = 'INSERT INTO ProductImages(ProductNo,ProductImage)
                           VALUES(:ProductNo,:TargetPath)';
                                    $q = $conn->prepare($sql);  
                                    $q->execute($task);                 
                                }
                }
}
?>

产品信息.php

<form method='POST' action='Submit-Product-Information.php' enctype='multipart/form-data'>
    Product Name: <input type='text' name='ProductName'>
    Product Price: <input type="text" name="ProductPrice">
    Product Image: <input type='file' name="ProductImage[]" multiple> //Since, Product Images are multiple.
</form>
<?
extract($_POST);

//First Insert Product Details
$sql = 'INSERT INTO Product(ProductName,ProductPrice)
       VALUES(:ProductName,:ProductPrice)';
$q = $conn->prepare($sql);  
$q->execute($task);

$ProductNo = $conn->lastInsertId(); //Get Product No

$TotalUploadedFiles=count($_FILES['ProductImage']['name']);

for($i=0;$i<$TotalUploadedFiles;$i++)
{
                $UploadedFileName=$_FILES['ProductImage']['name'][$i];
                if($UploadedFileName!='')
                {
                                $upload_directory = "Product Image/"; //Product Image Folder, Where you will upload Product Images
                                $TargetPath=time().$UploadedFileName;
                                if(move_uploaded_file($_FILES['ProductImage']['tmp_name'][$i], $upload_directory.$TargetPath))
                                {    
                                    $sql = 'INSERT INTO ProductImages(ProductNo,ProductImage)
                           VALUES(:ProductNo,:TargetPath)';
                                    $q = $conn->prepare($sql);  
                                    $q->execute($task);                 
                                }
                }
}
?>

产品名称:
产品价格:
产品图像://因为,产品图像是多个的。
提交产品信息。php

<form method='POST' action='Submit-Product-Information.php' enctype='multipart/form-data'>
    Product Name: <input type='text' name='ProductName'>
    Product Price: <input type="text" name="ProductPrice">
    Product Image: <input type='file' name="ProductImage[]" multiple> //Since, Product Images are multiple.
</form>
<?
extract($_POST);

//First Insert Product Details
$sql = 'INSERT INTO Product(ProductName,ProductPrice)
       VALUES(:ProductName,:ProductPrice)';
$q = $conn->prepare($sql);  
$q->execute($task);

$ProductNo = $conn->lastInsertId(); //Get Product No

$TotalUploadedFiles=count($_FILES['ProductImage']['name']);

for($i=0;$i<$TotalUploadedFiles;$i++)
{
                $UploadedFileName=$_FILES['ProductImage']['name'][$i];
                if($UploadedFileName!='')
                {
                                $upload_directory = "Product Image/"; //Product Image Folder, Where you will upload Product Images
                                $TargetPath=time().$UploadedFileName;
                                if(move_uploaded_file($_FILES['ProductImage']['tmp_name'][$i], $upload_directory.$TargetPath))
                                {    
                                    $sql = 'INSERT INTO ProductImages(ProductNo,ProductImage)
                           VALUES(:ProductNo,:TargetPath)';
                                    $q = $conn->prepare($sql);  
                                    $q->execute($task);                 
                                }
                }
}
?>



每当有多件物品出现时,意味着将有两张桌子。。一个是“产品信息”。。在“Product”表中提交产品详细信息后,为“Product Images…”添加另一个选项。。获取其ID。。并使用此ID在“ProductImages”表上存储多个图像。此ID不是其他产品ID。。因此,“ProductImage”表将有3列(必填),可能是ImageNo(主键,自动递增)、ProductID(您获得的ID)、ProductImage(您将保留映像路径的位置)。谢谢@DanishEnam可以使用类似于/images/product_ID/images的文件系统如果您需要更多信息,我可以举一个例子it@DanishEnam是的。每当有很多东西来的时候,就意味着会有两张桌子。。一个是“产品信息”。。在“Product”表中提交产品详细信息后,为“Product Images…”添加另一个选项。。获取其ID。。并使用此ID在“ProductImages”表上存储多个图像。此ID不是其他产品ID。。因此,“ProductImage”表将有3列(必填),可能是ImageNo(主键,自动递增)、ProductID(您获得的ID)、ProductImage(您将保留映像路径的位置)。谢谢@DanishEnam可以使用类似于/images/product_ID/images的文件系统如果您需要更多信息,我可以举一个例子it@DanishEnam是的,这是一个很好的方法。但我有一个问题,关于如何针对一个产品获取一个图像,例如。一个产品有很多(4)张图片,但我只想针对该产品显示一张图片。@AliRaza也没问题。在SQL查询中使用
限制0,1
。它将只获取1个图像<代码>从表中选择图像\u名称限制0,1对不起,我的问题不太清楚,我想显示产品表中的所有产品以及这些图像,但每个产品都应该显示图像表中的一个图像。(我使用内部连接,但内部连接针对一个产品获取所有图像,这不是我想要的)如果问题不清楚,请告诉我,我将尝试解释进一步的细节。最主要的是
所有的产品,每个产品只有一个图片
提供query@AliRazait是一个很好的方法。但我有一个问题,关于如何针对一个产品获取一个图像,例如。一个产品有很多(4)张图片,但我只想针对该产品显示一张图片。@AliRaza也没问题。在SQL查询中使用
限制0,1
。它将只获取1个图像<代码>从表中选择图像\u名称限制0,1对不起,我的问题不太清楚,我想显示产品表中的所有产品以及这些图像,但每个产品都应该显示图像表中的一个图像。(我使用内部连接,但内部连接针对一个产品获取所有图像,这不是我想要的)如果问题不清楚,请告诉我,我将尝试解释进一步的细节。主要的是
所有的产品,每个产品只有一张图片
提供了这个查询@AliRaza