laravel-admin 多文件上传,预览有时候会出现乱码的情况,有的是因为直接显示文档内容,中文乱码,有的是因为文件的格式问题(比如后缀是ifc、rfa的文件),也是乱码。
查看了源码,发现用的是Bootstrap FileInput这个插件。
一个转载自别人的Bootstrap FileInput 的api中文说明文档:https://blog.csdn.net/guaiguaiknl/article/details/86659252
Bootstrap FileInput 的官方文档:http://plugins.krajee.com/file-input/plugin-options
上面两个网址可以参考一下。
现在说问题的解决办法,看了半天的源码,由于时间与技术原因,暂时没有好的解决办法。我这边的处理办法是取消预览,
$('#kn_file').fileinput({ 'showPreview':false}); id为文件上传的input按钮的id
但是这样同时又出现一个问题,没有预览后,编辑的时候已经上传的文件无法删除,这个就需要修改laravel-admin的源码。直接替换以前的内容。
/vendor/encore/laravel-admin/src/Form/Field/下,多文件上传的源代码,将该方法修改如下:
public function prepare($files) { if (request()->has(static::FILE_DELETE_FLAG)) { return $this->destroy(request(static::FILE_DELETE_FLAG)); } $targets = array_map([$this, 'prepareForeach'], $files); // return array_merge($this->original(), $targets); return array_merge([], $targets); }