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

Здесь ниже виджет ввода файла 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, <- вот так. </p>

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

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

$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"
}
0 голосов
/ 13 декабря 2018

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

$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

...