上载多个PHP文件

时间:2018-10-30 07:37:54

标签: php file upload

我必须上传2张图片。一个是产品图片,另一个是QR。我需要将每个图像的URL插入MySQL数据库。我设法获取数据库中注册的每个图像的URL,并上传两个图像之一,第一个图像,但是与QR对应的图像,第二个图像,它没有上载到服务器,我没有收到任何错误消息。

这是MySql中的表 table

产品图片为“ product_image”,二维码为product_qr

这是在PHP-中使用“模态”创建的用户“界面” enter image description here

然后,我输入与连接到数据库并负责上载文件的功能相对应的代码:

$type = explode('.', $_FILES['productImage']['name']);
$type = $type[count($type)-1];
$typeQR = explode('.', $_FILES['productQR']['name']);
$typeQR = $typeQR[count($typeQR)-1];

$url = '../assests/images/stock/'.uniqid(rand()).'.'.$type;
$urlQR = '../assests/images/stock/'.uniqid(rand()).'.'.$typeQR;
if(in_array($type, array('gif', 'jpg', 'jpeg', 'png', 'JPG', 'GIF', 'JPEG', 
'PNG')) ||
in_array($typeQR, array('gif', 'jpg', 'jpeg', 'png', 'JPG', 'GIF', 'JPEG', 
'PNG')) ) {
if(is_uploaded_file($_FILES['productImage']['tmp_name']) ||
is_uploaded_file($_FILES['productQR']['tmp_name']) ) {
    if(move_uploaded_file($_FILES['productImage']['tmp_name'], $url) ||
    move_uploaded_file($_FILES['productQR']['tmp_name'], $urlQR)) {

$sql = "INSERT INTO product (product_name, product_image, brand_id, 
categories_id, quantity,rate, active, status, description, position_store, status_product, reference, product_qr)
        VALUES ('$productName', '$url', '$brandName', '$categoryName','$quantity', '$rate',
         '$productStatus', 1, '$productDescription', '$positionStore','$statusObject', '$reference', '$urlQR')";

这是“模式”代码:

<div class="modal-body" style="max-height:450px; overflow:auto;">

    <div id="add-product-messages"></div>

    <div class="form-group">
        <label for="productImage" class="col-sm-3 control-label">Imagen: </label>
        <label class="col-sm-1 control-label">: </label>
            <div class="col-sm-8">
                <!-- the avatar markup -->
                    <div id="kv-avatar-errors-1" class="center-block" style="display:none;"></div>
                <div class="kv-avatar center-block">
                    <input type="file" class="form-control" id="productImage" placeholder="Imagen del producto" name="productImage" class="file-loading" style="width:auto;"/>
                </div>

            </div>
    </div>

        <div class="form-group">
        <label for="productQR" class="col-sm-3 control-label">QR: </label>
        <label class="col-sm-1 control-label">: </label>
            <div class="col-sm-8">
                <!-- the avatar markup -->
                    <div id="kv-avatar-errors-1" class="center-block" style="display:none;"></div>
                <div class="kv-avatar center-block">
                    <input type="file" class="form-control" id="productQR" placeholder="Imagen QR" name="productQR" class="file-loading" style="width:auto;"/>
                </div>

            </div>
    </div>

正如我所说,一切正常,但是QR图像无法上传到服务器。

1 个答案:

答案 0 :(得分:0)

在本地测试它可以工作吗?

似乎存在权限问题。您是否在尝试上传这些文件的服务器上检查了权限?

您需要具有写入权限才能将文件上传到文件夹。根据您使用的客户端,右键单击该文件夹(在您的情况下为“资产”或“资产”和“图像”),然后检查它们是否具有写权限。

或者if语句可能有问题:

if(move_uploaded_file($_FILES['productImage']['tmp_name'], $url) || move_uploaded_file($_FILES['productQR']['tmp_name'], $urlQR))

尝试像这样使用&&而不是||

if(move_uploaded_file($_FILES['productImage']['tmp_name'], $url) && move_uploaded_file($_FILES['productQR']['tmp_name'], $urlQR))