从asp.net的文件夹帮助中显示文件

时间:2012-08-26 14:30:21

标签: asp.net file-io

我有一个脚本,显示文件夹中的一些文件。

背后的代码

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文件。

2 个答案:

答案 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)

在不同的集合中选择那些不同的文件类型并单独处理它们(即在具有特定缩略图的单独显示循环中)会更清晰吗?

或者使用字典而不是列表,因此您可以在决定要显示的图像时存储文件类型和查询。