【发布时间】:2015-06-12 03:49:07
【问题描述】:
我正在使用 dropzone.js 和 Codeigniter 来处理带有文件上传过程的文章发布:
- 有一个表格可以发表文章
- 有一个 dropzone 允许用户上传文件
在用户提交文章之前,他们可以上传文件。在这里,我需要一个数据库中的文件表来存储文章ID和文件名。
我的问题是: 只有在我点击提交表单按钮后,文章才会被存储到数据库中,然后我会得到文章 ID。但是,一旦我将文件拖到 dropzone 中,文件就会被上传。那么如何将“article_id - file_name”对存储到数据库中呢?
这是我上传文件的代码:
PHP上传文件:
public function upload() {
if (!empty($_FILES)) {
$tempFile = $_FILES['file']['tmp_name'];
$fileName = $_FILES['file']['name'];
$targetPath = getcwd() . '/uploads/';
$targetFile = $targetPath . $fileName ;
move_uploaded_file($tempFile, $targetFile);
// store table in db
$this->load->database(); // load database
$this->db->insert('file_table', array('id'=> '', 'article_id' => '', 'file_name' => $fileName, 'created_time'=> date("Y-m-d H:i:s")));
}
}
表单和dropzone的PHP:
<form>
...
<div id="dropzone" class="dropzone">
<div class="dz-message">
Drop files here or click to upload.<br />
<span class="note">(You might select multiple files here.)</span>
</div>
</div>
...
</form>
【问题讨论】:
-
您可以使用会话。上传文件时将文件ID设置为会话。当您保存文章时,从会话中获取文件ID并使用文章ID保存。
标签: php mysql codeigniter file-upload dropzone.js