【问题标题】:How to upload multiple images with DropzoneJS如何使用 DropzoneJS 上传多张图片
【发布时间】:2015-11-21 00:16:23
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    posts:iPostId | iUserId | iStatus | sComments | dtCreated

    photos:iPhotoId | iPostId | dtUploaded

    当用户开始发布新帖子时,在帖子表中创建一条记录,其中包含用户 ID、空 cmets、日期时间(例如 '0000-00-00 00:00:00')和状态0,然后在照片上传表单中添加一个隐藏的表单输入,以便您的照片上传脚本知道分配的帖子 ID,例如:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-16
      • 1970-01-01
      • 1970-01-01
      • 2017-07-27
      • 2022-01-16
      相关资源
      最近更新 更多