繁体   English   中英

move_uploaded_file php没有上传图片

[英]move_uploaded_file php no images uploaded

我的move_uploaded_file函数有问题。 问题是当我选择要上传的图像时,它没有上传到product_images中。 请帮助我整理一下我的代码块。

这是我的html代码:

<form> action="insert_product.php" method="post" enctype="multipart/form-data">
</form>

这是我的PHP:

<?php

if(isset ($_POST['insert_post'])) {


    // Getting the text data from the fields
    $product_title = $_POST['product_title'];
    $product_cat = $_POST['product_cat'];
    $product_brand = $_POST['product_brand'];
    $product_price = $_POST['product_price'];
    $product_desc = $_POST['product_desc'];
    $product_keywords = $_POST['product_keywords'];

    // Getting the image from the field

    $product_image = $_FILES['product_image']['name'];
    $product_image_tmp = $_FILES['product_image']['tmp_name'];

    $root = "product_images";


    move_uploaded_file($product_image_tmp,$root.$product_image);

    $insert_product = "insert into products (product_cat,product_brand,product_title,product_price,product_desc,product_image,product_keywords) "
        . "values ('$product_cat','$product_brand',' $product_title','$product_price','$product_desc','$product_image','$product_keywords')";


    $insert_pro = mysqli_query($link, $insert_product);

    if($insert_pro){

        echo "<script>alert('Product has been inserted!')</script>";
        echo "<script>window.open('insert_product.php','_self')</script>";

    }

}

我可以看到两个问题:

首先,您在这里缺少目录分隔符(/或\\)

move_uploaded_file($product_image_tmp, $root.$product_image);

所以将其更改为

move_uploaded_file($product_image_tmp, $root.DIRECTORY_SEPARATOR.$product_image);
// the php constant DIRECTORY_SEPARATOR is practical 
// if you're unaware on what system/os that script might be running

其次,该目录可能尚不存在,因此请检查并创建该目录(如果不存在)(在移动之前):

if(!is_dir($root)) { 
    mkdir($root, 0755, true); // third parameter isn't important in your case though)
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM