Как я могу загрузить файл и сохранить таблицу файлов в БД?

Я использую dropzone.js и Codeigniter для обработки поста статьи с процессом загрузки файла:

  1. Есть форма для публикации статьи
  2. Существует дропзона, позволяющая пользователю загрузить файл

Прежде чем пользователь отправит статью, он может загрузить файлы. И здесь мне нужна таблица файлов в базе данных для хранения идентификатора статьи и имени файла.

Мой вопрос:
Только после того, как я нажму кнопку отправки формы, статья будет сохранена в базе данных, и после этого я получу идентификатор статьи. Но как только я перетаскиваю файл в 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 для формы и dropzone:

<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>

0

Решение

Попробуй использовать insert_id() чтобы получить последний вставленный идентификатор.

0

Другие решения

Разве id не является автоинкрементом? Если это так, вам не нужно передавать его, вы можете передать ноль или пропустить поле. У вас есть имя файла в переменной $ fileName из того, что я вижу выше.

0

По вопросам рекламы [email protected]