【问题标题】:Upload more than one file PHP上传多个文件 PHP
【发布时间】:2018-10-30 07:37:54
【问题描述】:

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

这是MySql中的表 table

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

这是在 PHP 中使用“modal”创建的用户“界面”- 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 图像没有上传到服务器。

【问题讨论】:

    标签: php file upload


    【解决方案1】:

    当你在本地测试它是否有效?

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

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

    或者if 语句可能有问题:

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

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

    if(move_uploaded_file($_FILES['productImage']['tmp_name'], $url) &amp;&amp; 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)) 有问题尝试使用&amp;&amp; 而不是||
    • 亲爱的 RamazG 你是对的,必须是“&&”。请在下面写下答案,我会点击“确认”作为正确答案。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 2017-07-13
    • 1970-01-01
    • 2011-02-11
    • 2018-01-26
    • 2017-03-04
    相关资源
    最近更新 更多