coldfusion - 在 Chrome/IE 中打开快捷方式 URL
问题描述
我目前正在使用 cfdirectory 来拉取和显示文件夹中的文件。然而,在一些文件夹中,用户已经上传了站点/页面的快捷方式。在下面的当前代码中,它能够在网页上显示文件夹的内容。我能够毫无问题地打开和查看 pdf、docx、ppt 等文件。但是,当我选择快捷方式时,尽管存在这些页面/链接,但我收到 404 错误。
我的问题是:是否可以让快捷方式正确打开链接?
<cfset filters = "*.pdf|*.zip|*.doc*|*.docx*|.ppt*|*.pptx*|*.pps*|*.pot*|*.dot*|*.xls*|*.xlsx*|*.swf|*.rtf|*.url">
<cfset rootdir = expandPath('\folderpath\Tools & Resources - Systems\')>
<cfdirectory
directory="#rootdir#"
name="myDirectory"
action = "list"
filter="#filters#"
sort="name ASC, size DESC"
>
<div id="files" class="inline">
<cfoutput query="myDirectory">
<cfset FileExt=ListLast(Name,".")>
<cfif FileExt eq 'pdf'>
<cfset imgicon = 'pdf-icon-24.png'>
<cfelseif FileExt eq 'xlsx' or FileExt eq 'xls'>
<cfset imgicon = 'Microsoft-Excel-icon-24.png'>
<cfelseif FileExt eq 'docx' or FileExt eq 'doc'>
<cfset imgicon = 'docx-icon-24.png'>
<cfelseif FileExt eq 'ppt' or FileExt eq 'pptx'>
<cfset imgicon = 'Powerpoint-iconMP.png'>
<cfelseif FileExt eq 'lnk' or FileExt eq 'url'>
<cfset imgicon = 'url-icon-24.png'>
<cfelse>
<cfset imgicon = 'Documents-icon-24.png'>
</cfif>
<div class="dlist" style="float:left; margin-right:16px; width:370px">
<ul>
<li>
<a class="urlLinks" href="\folderpath\#Names#" target="_blank">
<div class="list-img" style="float:left; margin-right:20px">
<img alt="#Name#" src="\Image\#imgicon#" />
</div>
<div>#Name#</div>
</a>
</li>
</ul>
</div>
</cfoutput>
</div>
解决方案
经过一些研究和同事的帮助,我找到了一种涉及 ColdFusion 的方法。我希望这可以帮助任何其他用户。
<cfset UserID = SESSION.INETSEC.UID>
<cfset current_date = '#DateFormat(now(), "mm/dd/yyyy")# #TimeFormat(now())#' >
<!--- Download file --->
<cfif structKeyExists(URL, 'method') and URL.method eq 'download'>
<cfset folder_name = URL.folder_id />
<cfset file_name = URL.name />
<cfif findNoCase('.doc', file_name) >
<cfset file_type = 'application/msword' >
<cfelseif findNoCase('.pdf', file_name) >
<cfset file_type = 'application/pdf' >
<cfelseif findNoCase('.xls', file_name) or findNoCase('.xlt', file_name)>
<cfset file_type = 'application/vnd.ms-excel' >
<cfelseif findNoCase('.tif', file_name) >
<cfset file_type = 'image' >
<cfelseif findNoCase('.jpg', file_name) >
<cfset file_type = 'image/jpeg' >
</cfif>
<cfheader name="Content-Disposition" value="inline; filename=#file_name#">
<!---Check if file type is available--->
<cfif isDefined("file_type") >
<cfcontent type="#file_type#" file="directory\#folder_name#\#file_name#">
<cfelse>
<cfcontent file="directory\#folder_name#\#file_name#">
</cfif>
<cfabort>
</cfif>
推荐阅读
- android - 无法创建渐变材质设计按钮
- javascript - 使用 Javascript 做一些数学计算来计算范围
- javascript - React Native Side Menu (Navigator) 不覆盖整个屏幕
- angular - 正确使用 Angular /typsecript 用选定的对象填充数组
- ruby - 如何运行安装在替代路径上的 ruby 包?
- javascript - 使用 async/await 并得到“未能在 'response' 主体流上执行 'json' 被锁定在 eval”错误
- java - Java 变量超出范围,即使我已经在类中声明了它?
- c++ - 插件类未包含在 UE4 构建中
- python - 如何使用内联的 Jupyter 选项启动 pyspark?
- authentication - Shopify:以客户身份登录