2016-08-01 76 views
1

我正在制作一个上传文件的表格:文件,名称,扩展名(在php中连接到ms sql server)。 我想添加图标到基于扩展名的每个文件。我觉得3选项我怎么能做到这一点:1。 最好 - 负载莫名其妙用户默认的图标并以某种方式将它们与我的文件 2.良好的连接 - 负载某种方式从图标的一些网页列表,并以某种方式将它们与我的文件 3连接。坏 - 把一些图标,我的文件夹并从该文件显示基于文件扩展名的文件图标

我知道该怎么做第三种选择加载它,但我不能只搜索10个图标,因为总是会有扩展,是不是我的文件夹中(像jpeg不同于jpg)。

你能告诉我怎么可以做一些更好的解决方案,然后3号?它可以在PHP或JS/jQuery中使用,它不会改变。

回答

0

尝试一些事情是这样的:

if(ext == 'jpg' || ext == 'jpeg') 
{ 
    $image_name = 'image.jpg'; 
} 
if(ext == 'doc' || ext == 'docx') 
{ 
    $image_name = 'doc.jpg';  
} 

并作出其他未知图标

+0

有很多扩展来做这样的事情。这就是为什么我写第三个解决方案是不好的解决方案:/ – Koshi

0

既然你已经扩展数据库中的表,下一个合乎逻辑的步骤是加载所有常见的文件将数据扩展插入到相应图标的引用中。

然后使用in_array测试的延伸和加载正确的图标。

你可以得到图标集,在许多不同风格的文件类型。

1

您必须对未知类型的文件使用默认图标。

您可能会显示在表例如文件

HTML

<tr> 
<td class="fm fm_file"> 
<a target="_blank" href="./download.php?f=something">yourfile.jpg</a> 
</td> 
</tr> 

,做这个(较大库的片段)我的代码片段

PHP

if ($handle = opendir($directory)) { 
      while (false !== ($entry = readdir($handle))) { 
       if ($entry != "." && $entry != "..") { 
        if (!is_dir($directory . DIRECTORY_SEPARATOR . $entry)) { 
         $md = rand(0, 9) . substr(md5('download' . $entry), 1, 10) . rand(1000, 9999); 
         $dlink = '<a target="_blank" href="./download.php?f=' . $entry . '&c=' . $md . '" >' . $entry . '</a>'; 
         $editlink=''; 
         $a=explode('.', $entry); 

         if(in_array(strtolower(array_pop($a)),array('ini','txt','xml','bin','sql'))) 
         $editlink='<a href="filemanager-edit?dir=' . $subdir.'&f=' . $entry . '&c=' . $md . '" >' . $ledit . '</a>'; 
         $filelist.='<tr>' . '<td class="fm fm_file">' . $dlink . '</td>' . '<td class="edit">'.$editlink.'</td>' . '<td class="delete"><a href="filemanager?action=delete&dir=' . $subdir.'&f=' . $entry . '&c=' . $md . '" >' . $ldelete . '</a></td>' . '</tr>'; 
        } else 
         $filelist.='<tr>' . '<td class="fm ft_folder"><a href="filemanager?action=view&dir=' . $subdir . $entry . '&c=' . md5($entry) . '" >' . $entry . '</a></td>' . '<td class="edit"></td>' . '<td class="edit"><a href="filemanager?action=view&dir=' . $subdir . $entry . '&c=' . md5($entry) . '" >' . $lchoose . '</a></td>' . '</tr>'; 
       } 
      } 
      closedir($handle); 
     } 

分配图标需要用js

的JavaScript

$('.fm_file').each(function(){ 
     var name=$(this).find('a').html().split('.').pop(); 
    $(this).addClass('ft_'+name); 
    }); 

sktóty做IKONW¯¯CSS

CSS

.fm_file{ 
    background-image:url(../../images/filemanager/page_white.png); 
} 

.ft_folder{ 
    background-image:url(../../images/filemanager/folder.png); 
} 

.ft_pdf{ 
    background-image:url(../../images/filemanager/page_white_acrobat.png); 
} 

.ft_cs{ 
    background-image:url(../../images/filemanager/page_white_csharp.png); 
} 

.ft_xls{ 
    background-image:url(../../images/filemanager/page_white_excel.png); 
} 

.ft_php{ 
    background-image:url(../../images/filemanager/page_white_php.png); 
} 
.ft_dll{ 
    background-image:url(../../images/filemanager/page_white_dll.png); 
} 
.ft_exe,.ft_msi{ 
    background-image:url(../../images/filemanager/page_white_exe.png); 
} 
.ft_db,.ft_sql{ 
    background-image:url(../../images/filemanager/page_white_db.png); 
} 
.ft_png, 
.ft_jpg, 
.ft_bmp, 
.ft_gif{ 
    background-image:url(../../images/filemanager/page_white_picture.png); 
} 

.ft_txt, 
.ft_js, 
.ft_ini, 
.ft_bat, 
.ft_css{ 
    background-image:url(../../images/filemanager/page_white_text.png); 
} 

.ft_htm, 
.ft_xml, 
.ft_html{ 
    background-image:url(../../images/filemanager/page_white_code.png); 
} 

.ft_rar, 
.ft_zip{ 
    background-image:url(../../images/filemanager/page_white_compressed.png); 
} 

结果:

enter image description here

如果有人使用未知类型,则使用该类的图像fm_file。 你总是可以组成一个图标集合