Laravel unisharp文件管理器结合文件和图像管理器

时间:2016-09-06 13:16:45

标签: laravel laravel-5 file-management file-manager

上周我发现了Unisharp file manager插件。 在对插件进行了大量调整之后,我设法让插件在我的浏览器中运行而无需打开新页面(就像你应该使用插件一样)

浏览器中的视图: enter image description here enter image description here

第一张图片是我上传的图片,第二张图片是我上传的文件。

现在我的问题是我正在尝试将它们都放在1个文件管理器中,因此文件和图像在一个文件管理器中。

我试图将config / lfm.php,public / photos /调整为public / files /,如下所示

enter image description here

就像文件链接的位置一样,但当我这样做时,我之前上传的图片和文件不会加载

enter image description here

因此,如果您有关于如何将文件和图像管理器组合在一起的建议,或者对其他插件有其他建议,那就太棒了,

问候,

诺亚

2 个答案:

答案 0 :(得分:1)

完全披露:我是软件包维护者,为UniSharp工作。

你做得很好! 唯一的问题是,图像有拇指而文件没有(文件显示图标)。 当get参数“type”设置为“Image”(link here)时,文件和图像将显示,但文件的大拇指将被破坏。

解决方案:如果文件大拇指损坏,您可以设置如下图所示的默认图像。

<img onclick="useFile('{{ $file_name }}')" onError="this.src='/img/default.jpg'">

答案 1 :(得分:0)

所以看到评论@Stream Huang之后。我设法让它工作,这是真的,图像有拇指和像pdf的文件不。

我做的第一件事是UploadController@Upload更改

if ('Images' === $this->file_type) {
    $this->makeThumb($dest_path, $new_filename);
}

之后,我创建了一个变量,用于获取刚刚上传的文件的扩展名/文件名,并在图像上进行过滤。

$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