Yii2 kartik fileinput предварительный просмотр нескольких загруженных файловPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Yii2 kartik fileinput предварительный просмотр нескольких загруженных файлов

Сообщение Anonymous »

Я пытаюсь использовать kartik fileinput для загрузки нескольких файлов в мою форму.

Я использую таблицу «Вложения», чтобы сохранить в базе данных имя файла и другие поля, и сохраняю файлы в своей файловой системе. Обычно я связываю вложение с таблицей реестра через таблицу RegistryAttachment.

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

Я пытаюсь это сделать, используя следующий код:

Действие контроллера >

Код: Выделить всё

public function actionLoadMultiple($registryId = NULL){

$model = new Attachment();

if(!$registryId){
$model->files = [];
$registryId = 6;//For example
$registry = \app\models\Registry::findOne($registryId);
$registryAttachments = $registry->attachments;//Find all Attachment record for registryId
foreach($registryAttachments as $attachment){
$model->files[$attachment->original_filename] = $attachment->filePath();
}
}

if (Yii::$app->request->isPost) {
//Loading the files in the model.
//After I load them, I save them using the model function uploadMultiple
$model->files = UploadedFile::getInstances($model, 'files');
$loadedFiles = $model->uploadMultiple();
if ($loadedFiles) {
// file is uploaded successfully
foreach($loadedFiles as $originalFileName=>$fileName){
$attachment = new Attachment();
$attachment->section = $model->section?: 'oth';
$attachment->description = $model->description ?: 'Other';
$attachment->filename = $fileName;
$attachment->original_filename =$originalFileName;
if(!$attachment->save()){
$attachment->removeFile();
return ['error'=>\Yii::t('app','Error saving attachments to db. Please contact an administrator')];
}
}
return $this->redirect(['index']);
}
}

return $this->render('load_multiple',['model'=>$model]);
}
Функция модели

Код: Выделить всё

public function uploadMultiple(){
$files = $this->files;
$section = $this->section ?: '';
if(!$files){
return false;
}

$fileNameList = [];
$path = Utility::getAttachmentsBasePath();
$count = 1;
foreach ($files as $file) {
if (!$section) {
$section = 'oth';
}

$filename = \app\models\Attachment::generateFilename($file->name);

//I set the path to the right folder
$completePath = $path . '/' . $section . '/' . $filename;
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
$completePath = str_replace('/', '\\', ($completePath));
}

if (!$file->saveAs($completePath)) {
Yii::error("Error loading file - error code {$file->error}", "upload");
return ['error' => \Yii::t('app', 'Error saving files. Please contact an administrator')];
}

if (isset($fileNameList[$file->name])) {
$fileNameList[$file->name . '_' .  $count] = $filename ;
$count++;
} else {
$fileNameList[$file->name] = $filename;
}
}
return $fileNameList;
}
Просмотр нескольких загрузок


Если к выбранному реестру прикреплено 3 файла результат следующий:

Изображение
.

В этой настройке у меня возникли следующие проблемы:
  • Я хочу увидеть содержимое каждого файла, но это не работает.
  • Когда я загружаю новый файл, виджет удаляет уже загруженные файлы.
  • Кнопка удаления отдельного файла не работает


Подробнее здесь: https://stackoverflow.com/questions/604 ... es-preview
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Сопоставление yii2-select2 в виджете yii2 kartik
    Гость » » в форуме Php
    0 Ответы
    84 Просмотры
    Последнее сообщение Гость
  • Не удается удалить выбранное изображение при обновлении формы с помощью YII Kartik FileInput
    Anonymous » » в форуме Php
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Yii2: изображение не экспортируется в лист Excel в Kartik GridView
    Anonymous » » в форуме Php
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Kartik DatePicker не работает в yii2
    Anonymous » » в форуме Php
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • StartDate и endDate не работают в виджете DateRangePicker в плагине yii2 kartik
    Anonymous » » в форуме Php
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»