Laravel unisharp 文件管理器结合文件和图像管理器
Laravel unisharp file manager combine file and image manager
上周我发现了 Unisharp file manager 插件。
在对插件进行了大量调整后,我设法让插件在我的浏览器中工作而无需打开新页面(就像你应该使用插件一样)
我浏览器的视图:
第一张图片是我上传的图片,第二张图片是我上传的文件。
现在我的问题是我试图将它们都放在一个文件管理器中,这样文件和图像就在一个文件管理器中。
我已尝试将 config/lfm.php、public/photos/ 调整为 public/files/,如下所示
就像文件链接到的位置一样,但是当我这样做时,我之前上传的图像和文件不会加载
因此,如果您对如何将文件和图像管理器组合在一起有任何建议,或者对其他插件有其他建议,那就太好了,
你好,
诺亚
完全披露:我是包维护者,为 UniSharp 工作。
你做的很好!
唯一的问题是,图像有拇指,而文件没有(文件显示图标)。
当获取参数"type"设置为"Image"(link here)时,文件和图像会显示,但文件的缩略图会被破坏。
解决方案:您可以像下面这样设置默认图像,以防文件缩略图损坏。
<img onclick="useFile('{{ $file_name }}')" onError="this.src='/img/default.jpg'">
所以看到评论后@Stream Huang。我设法让它工作,确实图像得到了赞许,而 pdf 之类的文件却没有。
我做的第一件事是 UploadController@Upload
更改
if ('Images' === $this->file_type) {
$this->makeThumb($dest_path, $new_filename);
}
之后,我创建了一个变量来获取您刚刚上传的文件的 extension/file 名称,并在图像上对其进行过滤。
$fileName = $file->getMimeType();
if ($fileName == "image/jpeg" || $fileName == "image/png") {
$this->makeThumb($dest_path, $new_filename);
}
在ItemController
中我添加了一个[$key]
到数组
ItemController@getFileInfos
(原创)
$file_info[$key] = [
'name' => $file_name,
'size' => $file_size,
'created' => $file_created,
'type' => $file_type,
'icon' => $icon,
];
至:
$file_info[$key] = [
'name' => $file_name,
'size' => $file_size,
'created' => $file_created,
'type' => $file_type,
'icon' => $icon,
'title' => $file_data[$key]->title,
'alt' => $file_data[$key]->alt,
'id' => $file_data[$key]->id,
];
标题,alt和id是从数据库中获取的(当我上传图片时,我首先需要在上传之前输入标题,alt和图像。我拥有的数据存储在数据库中所以我可以将这些数据用于新闻文章)。
我还更改了几个刀片,主要是项目和索引
item.blade.php
(原创)
@if($type == 'Images')
<img id="{{ $file_name }}" src="{{ asset($thumb_src) }}" class="pointer" onclick="useFile('{{ $file_name }}')">
@else
<i class="fa {{ $file['icon'] }} fa-5x" style="height:200px;cursor:pointer;padding-top:60px;" onclick="useFile('{{ $file_name }}')"></i>
@endif
item.blade.php
(编辑)
$file_name = $file_info[$key]['name'];
$filebroken = substr($file_name, -3);
$extension = array_pop($filebroken);
file_info[$key]['name']
是一个从数据库中获取的文件名,就像 image.jpg 一样,我得到了名称的最后 3 个字符,所以它很可能是 .jpg 或 .png 如果它是图片。
之后我检查 $extension
变量是 jpg 还是 png,否则我将其设为它的图标。
@if($extension == 'png' || $extension == 'jpg')
<img id="{{ $file_name }}" src="{{ asset($thumb_src) }} class="pointer" onclick="useFile('{{ $file_name }}')">
@else
<i class="fa {{ $file['icon'] }} fa-5x" onclick="useFile('{{ $file_name }}')"></i>
@endif
上周我发现了 Unisharp file manager 插件。 在对插件进行了大量调整后,我设法让插件在我的浏览器中工作而无需打开新页面(就像你应该使用插件一样)
我浏览器的视图:
第一张图片是我上传的图片,第二张图片是我上传的文件。
现在我的问题是我试图将它们都放在一个文件管理器中,这样文件和图像就在一个文件管理器中。
我已尝试将 config/lfm.php、public/photos/ 调整为 public/files/,如下所示
就像文件链接到的位置一样,但是当我这样做时,我之前上传的图像和文件不会加载
因此,如果您对如何将文件和图像管理器组合在一起有任何建议,或者对其他插件有其他建议,那就太好了,
你好,
诺亚
完全披露:我是包维护者,为 UniSharp 工作。
你做的很好! 唯一的问题是,图像有拇指,而文件没有(文件显示图标)。 当获取参数"type"设置为"Image"(link here)时,文件和图像会显示,但文件的缩略图会被破坏。
解决方案:您可以像下面这样设置默认图像,以防文件缩略图损坏。
<img onclick="useFile('{{ $file_name }}')" onError="this.src='/img/default.jpg'">
所以看到评论后@Stream Huang。我设法让它工作,确实图像得到了赞许,而 pdf 之类的文件却没有。
我做的第一件事是 UploadController@Upload
更改
if ('Images' === $this->file_type) {
$this->makeThumb($dest_path, $new_filename);
}
之后,我创建了一个变量来获取您刚刚上传的文件的 extension/file 名称,并在图像上对其进行过滤。
$fileName = $file->getMimeType();
if ($fileName == "image/jpeg" || $fileName == "image/png") {
$this->makeThumb($dest_path, $new_filename);
}
在ItemController
中我添加了一个[$key]
到数组
ItemController@getFileInfos
(原创)
$file_info[$key] = [
'name' => $file_name,
'size' => $file_size,
'created' => $file_created,
'type' => $file_type,
'icon' => $icon,
];
至:
$file_info[$key] = [
'name' => $file_name,
'size' => $file_size,
'created' => $file_created,
'type' => $file_type,
'icon' => $icon,
'title' => $file_data[$key]->title,
'alt' => $file_data[$key]->alt,
'id' => $file_data[$key]->id,
];
标题,alt和id是从数据库中获取的(当我上传图片时,我首先需要在上传之前输入标题,alt和图像。我拥有的数据存储在数据库中所以我可以将这些数据用于新闻文章)。
我还更改了几个刀片,主要是项目和索引
item.blade.php
(原创)
@if($type == 'Images')
<img id="{{ $file_name }}" src="{{ asset($thumb_src) }}" class="pointer" onclick="useFile('{{ $file_name }}')">
@else
<i class="fa {{ $file['icon'] }} fa-5x" style="height:200px;cursor:pointer;padding-top:60px;" onclick="useFile('{{ $file_name }}')"></i>
@endif
item.blade.php
(编辑)
$file_name = $file_info[$key]['name'];
$filebroken = substr($file_name, -3);
$extension = array_pop($filebroken);
file_info[$key]['name']
是一个从数据库中获取的文件名,就像 image.jpg 一样,我得到了名称的最后 3 个字符,所以它很可能是 .jpg 或 .png 如果它是图片。
之后我检查 $extension
变量是 jpg 还是 png,否则我将其设为它的图标。
@if($extension == 'png' || $extension == 'jpg')
<img id="{{ $file_name }}" src="{{ asset($thumb_src) }} class="pointer" onclick="useFile('{{ $file_name }}')">
@else
<i class="fa {{ $file['icon'] }} fa-5x" onclick="useFile('{{ $file_name }}')"></i>
@endif