2010-01-03 72 views
0

當由Django的服務器接收的上載的文件,它的名稱可以用UploadedFile.nameDjango的文件上載:路徑和文件名

如果filename在多部分數據內容中包含像路徑讀:「/一/ b/c',UploadedFile.name似乎包含'/ c'。我如何檢索完整路徑而不僅僅是文件名。

謝謝。

Laurent Luce

回答

8

你不能。許多瀏覽器永遠不會發送整個路徑,作爲防止信息泄露的安全措施。

更重要的是,您對用戶計算機上生效的文件和路徑命名約定一無所知,因此對提交的名稱幾乎沒有辦法。不要做任何依賴提交的文件名。

+4

+1:這是規則的擴展:不要信任任何用戶發送給你的東西。 UN * X有一個名爲'file'的命令,它會給你一個你實際擁有的東西的好主意;我相信有一個API。如果你接受各種隨機上傳的東西,你可能想要自己「打字」文件,而不是依賴於擴展名。 – 2010-01-03 03:04:44