如何使用DropzoneJS上传多个图像

时间:2015-11-21 00:16:24

标签: php file-upload image-uploading dropzone.js

我并没有真正理解使用预览上传多个文件背后的概念。我检查了DropzoneJS,它看起来不错,我觉得我可以用它做很多事情。

我有这个例子:我有一个用户(id:801)创建一个新帖子(id:TBD,因为帖子尚未创建)。我有一个表image_post,其中包含特定帖子的图像,以及一个image表,其中包含图像详细信息。现在,我有Dropzone表单,它应该将图像上传到我在.php文件中指定的文件夹,该文件是为了处理来自Dropzone的ajax请求而实现的。假设用户上传了2张图片,我将它们存储到temp文件夹中。用户提交新帖子的创建,它会收到一个ID:10001。临时文件在磁盘上(但它们是否应该存储在数据库中?)但是看不到如何将帖子链接到图像

能够(使用Dropzone ajax请求上传文件后)所需的确切步骤将这些图像链接到实际的帖子ID?

1 个答案:

答案 0 :(得分:0)

您的系统需要在上传图片之前为帖子创建数据库记录。请考虑以下表结构,其中 i 前缀表示INT列, s 表示VARCHAR / TEXT列, dt 表示DATETIME。

postsiPostId | iUserId | iStatus | sComments | dtCreated

photosiPhotoId | iPostId | dtUploaded

当用户开始发布新帖子时,在帖子表格中创建一条记录,其中包含用户ID,空注释,日期时间,例如00:00:00&00; ,以及 0 的状态,然后将隐藏的表单输入添加到照片上传表单,以便为您的照片上传脚本知道指定的帖子ID,例如:

<input type="hidden" name="iPostId" value="22" />

照片上传脚本可以使用帖子ID在照片表格中创建新记录,然后使用文件名中的帖子ID将照片保存在特定文件夹中,例如,如果创建的记录的photo_id是2821,那么将文件保存为2821.jpg在您选择的文件夹中。

当用户完成帖子并点击保存/提交时,您可以使用UPDATE查询修改posts表上的原始记录,将其输入的文本分配给sComments列,dtCreated列的当前日期和时间,并将iStatus更改为1.

在显示帖子列表的页面上,只需将查询修改为类似的内容即可排除当前处于草稿状态(0)的SELECT * FROM posts WHERE status=1;,然后在查看帖子时可以运行查询例如SELECT * FROM photos WHERE post_id=22;以获取要显示的照片数组。

显然这可以扩展,但希望能给你一个很好的起点。