【问题标题】:How to Insert images as file instead of inserting them in Database as BLOB如何将图像作为文件插入,而不是将它们作为 BLOB 插入数据库
【发布时间】:2013-07-23 09:04:10
【问题描述】:

我是 php 新手。我想将图像从 html 表单上传到文件中。我在网上搜索但找不到任何有用的东西。请告诉我如何上传文件而不是数据库中的图像。我知道在数据库中上传图片的方法,而且非常简单。有没有像这样在文件中上传图像的方法。对不起我的英语不好。

$_FILES['image']['tmp_name'];
$original_image=file_get_contents ($_FILES['image']['tmp_name']);
$name= $_FILES['image']['name'];

【问题讨论】:

    标签: php upload image-file


    【解决方案1】:

    看看move_uploaded_file

    这是链接中的一个示例:

    <?php
    $uploads_dir = '/uploads';
    foreach ($_FILES["image"]["error"] as $key => $error) {
        if ($error == UPLOAD_ERR_OK) {
            $tmp_name = $_FILES["image"]["tmp_name"][$key];
            $name = $_FILES["image"]["name"][$key];
            move_uploaded_file($tmp_name, "$uploads_dir/$name");
        }
    }
    ?>
    

    不支持多文件/错误检查的简短示例:

    <?php
        $tmp_name = $_FILES["image"]["tmp_name"];
        $name = $_FILES["image"]["name"];
        move_uploaded_file($tmp_name, "uploads/$name");
    ?>
    

    单行更短:

    <?php
        move_uploaded_file($_FILES["image"]["tmp_name"], "uploads/" . $_FILES["image"]["name"]);
    ?>
    

    【讨论】:

    • 你能告诉我一个简单的方法吗?存储在数据库中非常简单,只需 3 个步骤即可完成,但是存储在文件中太长了 :(
    • @AftabAamir 这是一种简单的方法,也是正确的方法。我提供了一些简化/较短的代码 sn-ps。最后两个在功能上相同,只是以不同的方式编写。更短并不总是更好。最短的最难读。
    • '不支持多个文件/错误的简短示例'很容易
    【解决方案2】:

    您的意思是要将图像存储到您的服务器。

    只需使用这两个功能

    <?php
        copy($_FILES['image']['tmp_name'], $imgPath); //copy your image to a specific path on server
    
        move_uploaded_file($_FILES['image']['tmp_name'], $imgPath); //copy your image to a specific path on server and delete uploaded image in temp folder
    ?>
    

    【讨论】:

    • @ntp 为什么将copy 与 move_uploaded_file 一起使用?
    • 对此感到抱歉。我的意思是我们可以使用两个函数之一将临时上传的文件复制到服务器路径。我想展示这个:首先 php 将文件上传到一个临时文件夹,然后我们可以以任何我们想要的方式处理这个文件
    猜你喜欢
    • 2020-02-25
    • 2017-03-26
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-22
    • 1970-01-01
    相关资源
    最近更新 更多