如何上传文件并将文件 table 存储到数据库中?
How can I upload a file and store a file table into DB?
我正在使用 dropzone.js 和 Codeigniter 处理带有文件上传过程的文章 post:
- 有表格可以post一篇文章
- 有一个拖放区允许用户上传文件
在用户提交文章之前,他们可以上传文件。在这里,我需要在数据库中创建一个文件 table 来存储文章 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")));
}
}
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不是自增吗?如果是,则不需要传递它,可以传递 null 或跳过该字段。我在上面看到的 $fileName 变量中有文件名。
尝试使用 insert_id()
获取最后插入的 ID。
我正在使用 dropzone.js 和 Codeigniter 处理带有文件上传过程的文章 post:
- 有表格可以post一篇文章
- 有一个拖放区允许用户上传文件
在用户提交文章之前,他们可以上传文件。在这里,我需要在数据库中创建一个文件 table 来存储文章 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")));
}
}
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不是自增吗?如果是,则不需要传递它,可以传递 null 或跳过该字段。我在上面看到的 $fileName 变量中有文件名。
尝试使用 insert_id()
获取最后插入的 ID。