首页 > 解决方案 > 在 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

解决方案


经过一些研究和同事的帮助,我找到了一种涉及 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>

推荐阅读