php - Dropzone上传图片并将所有图片序列化为一份数据保存

标签 php mysql serialization image-uploading dropzone.js

这是我使用 dropzone 插入图像的功能,但每次我上传图像时,它都会再次插入一个新的 id,这意味着新的行。我想要的是将所有图像仅上传一行并序列化所有图像。

<?php
if(!empty($_FILES)){

    include 'connection.php';

    $id = $_POST['id'];

    $targetDir = "uploads/";
    $fileName = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
    $img = $_FILES['file']['name'];
    $img_name = $id . "_" . uniqid() . "_" . ($_POST['default_pic'] == $img ? "1" : "0") . "." . $fileName;
    $targetFile = $targetDir.basename($img_name);
    if(move_uploaded_file($_FILES['file']['tmp_name'],$targetFile)){

        $new_data = array("cover" => ($_POST['default_pic'] == $img ? "1" : "0"), "img" => $img_name); 
        $new_array[] = $new_data;

        $data_serialize = serialize($new_array);
        //insert file information into db table
        $conn->query("INSERT INTO files (file_name, uploaded) VALUES('".$data_serialize."','".date("Y-m-d H:i:s")."')");

    }

}
?>

我的数组的用途是自定义图像的名称..并通过函数序列化将它们放入一个变量中。

$new_data = array("cover" => ($_POST['default_pic'] == $img ? "1" : "0"), "img" => $img_name); 
$new_array[] = $new_data;

最佳答案

Dropzone 允许您设置“uploadMultiple”参数。

http://www.dropzonejs.com/#config-uploadMultiple

使用此功能时,Dropzone 将在单个 HTTP 请求中发送所有文件,并且您需要在后端处理它们(在您的情况下为 PHP)。如果您var_dump您的$_FILES

,您应该能够看到该格式
<script type="text/javascript">
    $(function() {
        var myDropzone = new Dropzone("#dz", {
            uploadMultiple: true
        });
    });
</script>

当然还有 HTML ...

<form id="dz" 

关于php - Dropzone上传图片并将所有图片序列化为一份数据保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33011731/

相关文章:

c# - 将 JSON 反序列化为 C#

javascript - 使用 PHP 在 Google map 上按标题搜索标记

php - 使用 mysql 从订单表中获取每个用户的最后 5 个订单

PHP 和 MySQL fckeditor 集成?

mysql - 将mysql查询结果行转换为列

c# - 如何使用 json.net 构建用于序列化的对象层次结构?

c# - Json.net 在 MVC4 中使用循环引用反序列化 json

php - sql查询连接三个表并选择数据(如果存在)

javascript - ajax post 整数和字符串数组

php - ORDER BY 字段内的 MySQL 子查询。 (没有内连接)