0

下面是 update_form 中的 kartik 文件输入小部件。

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、doc 等 [我试图喜欢'initialPreviewFileType'=>'any'] 不起作用。

  2. 我想将选定的图像 ID 传递给操作以删除图像?- 'deleteUrl' => ' site/delete', 'id'=>12, <-- 像这样。

4

2 回答 2

1

在下面的代码中,我得到了两个问题的结果。

$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. 对于 delete -> 提到的 url,我编写了删除函数,也通过 key 参数传递了 id。

  2. 要查看所有扩展文件,您必须在类型变量中发送“类型” $initializeConfig1['type'] = $type; ,我正在根据扩展名获取图像扩展名,我正在设置文件的格式like[pdf,xlsx,image]

易一

于 2018-12-13T11:25:52.680 回答
0

管理预览的各种方法。此示例中演示了以下功能: 对于单个图像,您可以将其设置为多个相同

$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"
}
于 2019-02-18T07:17:05.147 回答