Как просмотреть предпросмотр изображений и pdf-файлов в yii2 kartik Загрузка нескольких файлов в форме обновления

Здесь ниже виджет ввода файла kartik в update_form.

echo FileInput::widget(
    [
        'name' => 'BriefRequirements[requirement_value][]',
        'attribute' => 'assets_file',
        'id' => 'assets_file',
        'options' => ['multiple' => true],
        'pluginOptions' => [
            'overwriteInitial' => false,
            'initialPreview' => $image_url,
            'deleteUrl' => ' site/delete',
            'initialPreviewAsData' => true,
            'initialPreviewFileType' => 'image' //'pdf'
        ]
    ]
);

ниже приведен код загрузки нескольких изображений,

foreach ($modelRequirements as $req) {
    $image_url[] = Yii::$app->request->baseUrl
        . '/theme/business_campaign_files/'
        . $req['requirement_value'];
}

Мне нужна помощь с моими двумя вопросами:

  1. Нужно показать все выбранные форматы файлов, такие как изображения, PDF, документы и т. Д. [Я пытался понравиться 'initialPreviewFileType'=>'any'] не работает.

  2. Я хочу передать выбранный идентификатор изображения в действие, чтобы удалить изображение? - 'deleteUrl' => ' site/delete','id'=>12<- как это.

2 ответа

Решение

В приведенном ниже коде я получил результат для двух моих вопросов.

$initializeConfig = [];
$initializeConfig1 = [];
if ($modelRequirements) {
    foreach ($modelRequirements as $req) {
        $extension = substr(
            $req['requirement_value'],
            strrpos($req['requirement_value'], '.') + 1
        );
        $image_url[] = Yii::$app->request->baseUrl
            . '/theme/business_campaign_files/'
            . $req['requirement_value'];
        $initializeConfig1['url'] = Url::toRoute('delete-requirement');
        $initializeConfig1['key'] = $req['id'];
        $initializeConfig1['type'] = $type;
        array_push($initializeConfig, $initializeConfig1);
    }
}

В приведенном выше коде я получил результат для двух моих вопросов.

  1. Для удаления -> упомянутый URL я написал функцию удаления, также через параметр ключа я передал идентификатор.

  2. Для просмотра всех файлов расширения вы должны отправить как "тип" $initializeConfig1['type'] = $type; в переменной типа я получаю расширение изображения на основе расширения я устанавливаю формат файла like[pdf,xlsx,image],

EasyOne

Различные методы для управления вашим предварительным просмотром. В этом примере демонстрируются следующие функции: для одного изображения вы можете сделать его несколько

$files = array();
$files['initialPreview'] = Url::base(TRUE) . '/' . $uploadurl . $newFileName;
$files['initialPreviewAsData'] = true;
//FOR PDF 
if ($fieldtype == 'pdf') {
 $files['initialPreviewConfig'][] = array('type' => 'pdf', 'key' => $newFileName);
} else { 
//FOR IMAGES
 $files['initialPreviewConfig']['key'] = $newFileName;
}

$files['namefile'] = $newFileName;

Ответ JSON:

{
  "initialPreview": "http://localhost/yii2/uploads/project/brochure/fileone.pdf",
  "initialPreviewAsData": true,
  "initialPreviewConfig": [
    {
      "type": "pdf",
      "key": "fileone.pdf"
    }
  ],
  "namefile": "fileone.pdf"
}
Другие вопросы по тегам