2013-03-06 74 views
2

我正在研究Intranet增强功能,该功能将允许用户打开给定目录内文件的最新实例(最近修改或创建)。CFDIRECTORY被主机提供商阻止。任何替代品?

不幸的是,cfdirectory标记(以及其他一些标记)被托管提供商阻止。我基本上需要模仿这段代码的功能,而无需使用cfdirectory

<cfdirectory action="list" directory="\\SERVERABC\FILEDIR" name="myDirectory"> 
<cfloop query="mydirectory"> 
<cfoutput> 
    <cfif mydirectory.dateLastModified EQ DateFormat(Now(),'mm/dd/yy')> 
     <!--- ..display link to file for user to download ---> 
    </cfif> 
</cfoutput> 
</cfloop> 

FileExists()功能可用。但默认的ColdFusion用户将无法访问应用程序本身中实际用户可能使用的所有网络位置。

+2

说实话,如果他们没有实现沙箱,并且必须禁用CFDirectory,那么您应该找到另一个托管提供程序。您可能能够通过使用Java组件“解决”它,但它们可能也会阻止CreateObject(“java”)?很难给你一个替代品,不知道禁用标签的完整规模。 – BKK 2013-03-06 15:22:00

+0

不幸的是,我不能使用其他托管服务提供商。我为一家使用内部托管组的大型公司工作,因此我们处于谨慎处理哪些标签被阻止的情况下。我试图找到这些标签的完整列表。 – user1178394 2013-03-06 15:42:07

+0

尝试:createObject(“java”,“java.io.File”)---结果:访问被拒绝(java.io.FilePermission \\ SERVERABC \ FILEDIR读取) – user1178394 2013-03-06 15:46:28

回答

1

您需要让您的主机为您提供安全沙箱,以便您可以使用这些标签。他们无法做到这一点的唯一原因是他们运行的是CF标准版,而不是企业版。如果是这种情况,那么你运气不好,因为所有文件I/O标签都将不可用。没有专业的CF主机运行标准版。