我有一个脚本,显示文件夹中的一些文件。
背后的代码
Sub fileinfo()
Dim objDI As New System.IO.DirectoryInfo(Server.MapPath("upload/files/"))
Dim allFile As New ArrayList()
allFile.AddRange(objDI.GetFiles("*.png"))
allFile.AddRange(objDI.GetFiles("*.jpg"))
allFile.AddRange(objDI.GetFiles("*.bmp"))
allFile.AddRange(objDI.GetFiles("*.gif"))
allFile.AddRange(objDI.GetFiles("*.pdf"))
allFile.AddRange(objDI.GetFiles("*.doc"))
allFile.AddRange(objDI.GetFiles("*.docx"))
Me.showfiles.DataSource = allFile
Me.showfiles.DataBind()
End Sub
主要代码
<ul class="thumbnails">
<asp:DataList ID="showfiles" runat="server" RepeatColumns="6" CellPadding="10" RepeatLayout="flow">
<ItemTemplate>
<li class="span2"><a class="thumbnail" href="#"><asp:ImageButton ID="folderfiles" runat="server" ImageUrl='<%# string.Format("upload/files/{0}", DataBinder.Eval(Container.DataItem,"Name")) %>' ToolTip='<%# Bind("Name") %>' height="82" width="119" /></a></li>
</ItemTemplate>
</asp:DataList>
可以正常使用图像,但如果我添加像pdf文件这样的文档,我会得到这个。 http://i.imgur.com/vPVvb.png
然后添加文本框,如何添加if statsment或可以添加的内容:
pdficon.jpg for .pdf files
docicon.jpg for .doc files
zipicon.jpg for .zip files
所以,如果文件是图像,那么它就像现在一样工作,当文件是pdf或doc文件时,它会使用图标图像并显示出来!
..... ..... EDIT EDIT ...... EDIT ........ EDIT ......... ......... EDIT修改
这是它的作品 http://i.imgur.com/6S4k7.png
但是当我点击我得到的其中一个文件和错误页面时,没有错误编号,但是带有文本。
..........&lt;%@ Page EnableEventValidation =“true”%&gt; ClientScriptManager.RegisterForEventValidation .....
我无法下载/查看image / pdf文件。
答案 0 :(得分:2)
您可以实现一个返回图片网址的方法:
Private Function getImageUrl(filename As String) As String
Select Case Path.GetExtension(filename)
Case "pdf"
Return "pdficon.jpg"
Case "doc"
Return "docicon.jpg"
Case "zip"
Return "zipicon.jpg"
End Select
Return String.Format("upload/files/{0}", filename)
End Function
并在您的标记中使用它:
... ImageUrl='<%# getImageUrl(DataBinder.Eval(Container.DataItem,"Name")) %>'
...
答案 1 :(得分:0)
在不同的集合中选择那些不同的文件类型并单独处理它们(即在具有特定缩略图的单独显示循环中)会更清晰吗?
或者使用字典而不是列表,因此您可以在决定要显示的图像时存储文件类型和查询。