Как просмотреть предпросмотр изображений и 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'];
}
Мне нужна помощь с моими двумя вопросами:
Нужно показать все выбранные форматы файлов, такие как изображения, PDF, документы и т. Д. [Я пытался понравиться
'initialPreviewFileType'=>'any'
] не работает.Я хочу передать выбранный идентификатор изображения в действие, чтобы удалить изображение? -
'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);
}
}
В приведенном выше коде я получил результат для двух моих вопросов.
Для удаления -> упомянутый URL я написал функцию удаления, также через параметр ключа я передал идентификатор.
Для просмотра всех файлов расширения вы должны отправить как "тип"
$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"
}