经典ASP - 循环通过具有大量图像的文件夹

时间:2014-04-24 08:30:54

标签: vbscript asp-classic filesystemobject

我正在维护一个使用带有图片上传功能的HTML编辑器的网站。单击上载后,将打开一个弹出窗口,其中列出了文件夹中每个图像的路径。目前文件夹中有超过7000张图片。

代码非常混乱。它使用Scripting.FileSystemObject来获取文件数组,然后使用for循环进行循环。response.write用于显示每个文件的信息,并且由于某些原因,如果文件夹中有超过4015个图像,则会出现问题。没有错误发生,但似乎写出文件的函数无声地失败,页面停止渲染。

当我的文件少于4015时,我很困惑。这可能是记忆问题吗?我原本期待收到某种错误。

感谢您的任何信息。

以下是用于每个文件的Response.Write

            Response.Write "<tr style='background:" & sColorResult & "'>" & VbCrLf & _
            "<td><img src='images/"&sIcon&"'></td>" & VbCrLf & _
            "<td valign=top width=100% ><u id=""idFile"&nIndex&""" style='cursor:pointer;' onclick=""selectFile(" & nIndex & ")"">" & oFile.name & "</u>&nbsp;&nbsp;<img style='cursor:pointer;' onclick=""downloadFile(" & nIndex & ")"" src='download.gif'></td>" & VbCrLf & _

            "<td valign=top align=right nowrap>" & FormatNumber(oFile.size/1000,1) & " kb&nbsp;</td>" & VbCrLf & _          
            "<td valign=top nowrap onclick=""deleteFile(" & nIndex & ")""><u style='font-size:10px;cursor:pointer;color:crimson' " & sFolderAdmin & ">" & VbCrLf

        if not bWriteFolderAdmin then
            Response.Write "<script>document.write(getTxt('del'))</script>" & VbCrLf
        end if

        Response.Write "</u></td></tr>" & VbCrLf

1 个答案:

答案 0 :(得分:1)

听起来这里的问题是响应缓冲区填满了。这些解决方案都应该有效:

  1. 通过添加Response.Buffer = False作为第一行代码来禁用缓冲。
  2. 启用了保持缓冲但是以特定间隔调用Response.Flush()以刷新缓冲区。