2016-09-06 229 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'">