如何在Coldfusion中訪問本地文件outsite wwwroot。我想做一個「href」鏈接來訪問wwwroot目錄之外的文件。我嘗試了許多不同的解決方案,但其中任何一個都有效創建一個鏈接以訪問Coldfusion中「wwwroot」目錄之外的本地文件
2
A
回答
6
您無法鏈接到Web根目錄之外的文件,這有助於保持服務器的安全。但是,如果您的CF服務器有權訪問該其他文件夾,則可以在您的應用程序中編寫一個CF頁面,該頁面可以使用CFCONTENT
來顯示該文件夾中的文件。
但是,不要試圖通過在查詢字符串中傳遞該文件的路徑來訪問該文件。這會讓你面對其他安全問題。在數據庫中創建一個將這些文件映射到文件ID的表格,然後確保您登錄的用戶具有訪問該文件的正確角色或權限。
您會在查詢字符串中創建一個文件getFile.cfm
並傳遞id=123
。一旦你驗證您的用戶可以訪問該文件有問題,使用此代碼呈現給瀏覽器:
<cfheader name="Content-disposition" value="attachment;filename=#dafile#">
<cfcontent file="#dafile#" type="application/pdf">
只要確保在type
屬性包含有關文件的正確mime-type。
本例來自Ray Camden's post。
+7
請注意他是如何配置的 - 傳遞一個如「id = 123」的密鑰。不要像傳遞文件名那樣做。如果你這樣做,有人會開始傳遞像filename = ../../../../boot.ini之類的東西,並且可以訪問幾乎任何他們夢寐以求的文件。另外,你的「getfile.cfm」文件的一部分應該檢查用戶是否有適當的權限來查看文件 - 否則,惡意用戶開始傳遞其他ID來查看他們是否可以查看其他文件(如果你看到我意思)。訪問web根目錄之外的文件時,安全性應該是您的第一個問題。 – 2014-10-09 16:58:51
相關問題
- 1. 從SmartGWT部署之外的目錄訪問本地文件?
- 2. 在bin文件夾以外的Perl中創建一個目錄
- 3. 不在wwwroot目錄中的鏈接文件
- 4. 創建wwwroot中文件
- 5. 在本地目錄中創建一個python文件
- 6. 防止訪問PHP中某個目錄以外的文件
- 7. 如何爲目錄中的每個文件創建軟鏈接?
- 8. 如何在PHP,MySQL中的文件夾之外創建目錄
- 9. 在Html.ActionLink中創建一個動態鏈接文本和鏈接()
- 10. 創建鏈接以下載本地文件
- 11. 在Anaconda以外的目錄中訪問文件
- 12. 如何在Sinatra中創建指向文件目錄的鏈接?
- 13. 獲取目錄中最後創建的符號鏈接文件
- 14. 在文檔根目錄之外訪問文件
- 15. 在java中爲windows創建一個目錄的硬鏈接
- 16. Gradle - 在項目之外訪問文件
- 17. htaccess的訪問當前目錄之外
- 18. 使用Apache訪問文檔根目錄以外的文件
- 19. 防止訪問給定工作目錄之外的文件
- 20. 根目錄之外的jQuery.ajax訪問文件
- 21. 將文件上傳到Coldfusion中新創建的目錄
- 22. 本地目錄之間的Rsync文件
- 23. 在本地Maven倉庫中訪問jar以外的文件
- 24. Git:創建一個文件鏈接
- 25. Wicket:創建一個PDF文件鏈接
- 26. 創建html報告,我可以創建編輯鏈接到本地文件?
- 27. 如何在ColdFusion中創建超鏈接?
- 28. 鏈接文件的目錄
- 29. 我可以創建一個指向沒有wwwroot目錄的驅動器的虛擬目錄嗎?
- 30. 訪問根目錄以外的文件與苗條和PHP
您嘗試過哪些解決方案?你得到的答案很可能會使用這些相同的技術。 – 2014-10-09 16:08:37
是文件html還是某種二進制文件,如jpg,mp3等? – 2014-10-09 16:42:06