首页 > 解决方案 > 如何使用 PHP 上传图片

问题描述

我不能在我的项目中上传一个文件。我有一个商店的管理员页面,用户应该能够在其中创建产品。我使用了一种表单,用户可以在其中输入所需的所有数据。我无法将产品图片上传到我的服务器。我的第一次尝试是将表单提交给数据库处理程序,但除了 $_FILES 属性之外的所有内容都已填写。所以我尝试了其他格式,但没有任何效果。我最后一次尝试是在提交后留在同一个文件中,但 $_FILES 仍然为空。

<?php

if ($_SERVER["REQUEST_METHOD"] === "POST"){
    echo "<pre>";
    print_r($_POST);
    print_r($_FILES);
    echo "</pre>";
    die();
}

?>

<form id="create-item-form" action="" method="post">
        <label for="new_product_image_field">Image:</label>
        <input type="file" id="new_product_image_field" name="new_product_image">
        <label for="new_product_name_field">Name:</label>
        <input type="text" id="new_product_name_field" name="new_product_name" required>
        <label for="new_product_alcoholContent_field">Alcohol Content:</label>
        <input type="number" id="new_product_alcoholContent_field" name="new_product_alcoholContent"
               min="1" max="20" step="0.1">
        <label for="new_product_price_field">Price:</label>
        <input type="number" id="new_product_price_field" name="new_product_price"
               min="0" step="0.1">
        <label for="new_product_description_field">Description</label>
        <textarea name="new_product_description" id="new_product_description_field" cols="30" rows="10" required></textarea>
        <input type="submit" value="Create" id="create_new_product_button" name="create_new_product">
    </form>

结果:

Array
(
    [new_product_image] => beer.jpg
    [new_product_name] => b
    [new_product_alcoholContent] => 2
    [new_product_price] => 2
    [new_product_description] => b
    [create_new_product] => Create
)
Array
(
)

我会很感激一些帮助

标签: phpfile-upload

解决方案


请在您的表单中添加 enctype 属性。

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

如果您需要更多帮助,请告诉我,因为您的代码中缺少很多部分,例如获取上传文件的临时名称,move_uploaded_file() 您的代码中没有这样的方法,所以我没有像我一样放下这些步骤m 假设您已经熟悉如何处理上传的文件


推荐阅读