2016-09-06 226 views
1

上周我发现了Unisharp file manager插件。 经过大量调整的插件我设法让插件在浏览器中工作,而无需打开新的页面(如你应该用插件来获得)Laravel unisharp文件管理器组合文件和图像管理器

视图从我的浏览器: enter image description here enter image description here

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

现在我的问题是,我试图让他们都在1文件管理器,所以文件和图像在一个文件管理器在一起。

我试图调整配置/ lfm.php,公共/照片/成公共/文件/就像你在这里看到下面

enter image description here

就像在文件链接到,但是当我做到这一点的图片和文件,我以前有过上传不会加载

enter image description here

所以,如果你有关于如何将文件和图像管理器结合在一起的任何建议或得到了一个其他建议一个其他的插件也将是巨大的,

问候,

诺亚

回答

0

所以看到评论@Stream Huang。我设法让它工作,这是真的,图像得到了拇指和文件像PDF不要。

我做的第一件事是在[email protected]变化

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]到阵列

[email protected](原始)

$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,如果它的ai法师。

之后,我正在检查如果$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 
1

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

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

解决方案:您可以设置默认图像,如下文所示,以防文件大拇指失灵。

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