PHP图像上传者问题

时间:2016-01-05 19:25:20

标签: php image-uploading

我的PHP图像上传器有问题,因为出于某种原因,当我测试时,尽管选择了图像,但它回显NULL,而不是图像URL。可能的原因是什么?

if (isset($_POST['add_product'])) {
    include 'connect.php';
    $prodname = (isset($_POST['productname']) ? $_POST['productname'] : null);
    $prodtype = (isset($_POST['prodtype']) ? $_POST['prodtype'] : null);
    if (empty($_FILES['prodimage']['name'])) {
        $imageURL = "NULL";
        echo $prodname."<br>".$prodtype."<br>".$imageURL;
    } else if (!empty($_FILES['prodimage']['name'])) {
        if(move_uploaded_file($_FILES['prodimage']['tmp_name'], "../media/images/" .$_FILES['prodimage']['name']))
        $imageURL = "media/images/" .$_FILES['prodimage']['name'];
        echo $prodname."<br>".$prodtype."<br>".$imageURL;
    }
 }

HTML代码:

<h2>Add Products</h2>
<form action='' method="POST">
    <div class='products'>
        <h3>Product Name</h3>
        <input type='text' name='productname' class='title' placeholder='' value=''/>
    </div>
    <div class='products'>
        <h3>Product  Type</h3> 
        <div class='styled-select'>
            <select name='prodtype'><OPTION VALUE='1'>MARMORSKIVOR</OPTION>
                <OPTION VALUE='2'>GRANIT</OPTION>
            </select>
        </div>
    </div>
    <div class='products'>
        <h3>Add image</h3>
        <label class="myLabel" id="prodimage">
            <input type="file" name="prodimage" id="fileToUpload" />
            <span>Select Image</span>
        </label>
    </div>
    <div class="products">
        <button class='add_product' type='submit' name='add_product'>Add Product</button>
    </div>
</form>

1 个答案:

答案 0 :(得分:2)

我们在此处理文件,因此您需要在表单中添加适当的enctype。

<form enctype="multipart/form-data" action='' method="POST">

根据手册:

错误报告会帮助您。

但是,您在此处使用了两种不同的路径声明。

  • "../media/images/"
  • $imageURL = "media/images/"

您需要检查您要使用的确切内容。

  • 只有你知道那是什么,其中一个是失败的,或两者兼而有之。

如果您从根运行脚本并且文件夹是其直接子文件夹,则需要使用$imageURL = "media/images/"

即:

- root
  -> public/your_file.php
     - media
     - images
  -> other_folder_in_public