2017-08-01 15 views
1

在我的Web應用程序中,用戶通過輸入type ='file'選擇本地圖像。該應用程序具有多個「畫筆」,並且對於每個畫筆,用戶可以選擇一組不同的本地圖像作爲畫筆的「繪畫」。如果可能的話,我只想使用一個輸入類型='文件',並且當給定的筆刷X是可編輯的筆刷(一次只能刷一個筆刷)時,我想刷新輸入以便其文件列表是可編輯畫筆的文件列表,而不僅僅是最近選擇的一批文件。我預計這是不可能的。是對的嗎?將輸入控件的文件列表設置爲先前選擇的文件列表

+0

你可以定義「*可編輯筆刷的文件列表*」嗎?就像你想限制一個人可以上傳文件的文件夾一樣? –

+0

每個筆刷可能有不同的文件列表。輸入將用於生成幾個不同的文件列表;每個刷子一個。假設畫筆x當前是可編輯畫筆(一次只能刷一個畫筆)。假設用戶選擇文件列表X.然後,用戶使用可編輯的筆刷畫筆並選擇文件列表Y.然後,用戶使x編輯畫筆。我希望能夠將輸入的文件列表設置爲X.問題是這是否可能。 –

回答

2

您將無法設置文件清單上的輸入控制程序,因爲這將意味着你可以讀取(或重新上傳)文件的用戶已經不只是手動選擇的(安全隱患)。

也許你可以做的,而不是妥協「我想只使用一個輸入類型='文件'」部分。您可以有一個輸入類型='文件'元素的數組,然後根據選擇的畫筆顯示/隱藏它們。這會給出在UI中顯示所選文件的不同列表的錯覺。

+0

謝謝,喬丹。是的,我希望這是我必須要做的。 –

+0

但是,我認爲我應該*能夠將輸入設置爲之前有效選擇的文件列表。我不會要求閱讀用戶尚未手動選擇的文件。在這些問題上,寶寶似乎總是被洗澡水拋出。即使是沒有風險的情況也會被禁止。 –

+0

@JimAndrews我不知道深入瞭解File/FileList API,但是在允許您提出的建議中可能會存在* temporal *安全風險。通過選擇一些文件,用戶說:「我授予您的網絡應用程序權限,以讀取這些文件*的內容*。」如果將來文件發生更改,則該Web應用程序不應該有權查看其新內容。允許您設置輸入元素的FileList意味着您可以觸發重新上傳;但由於您無法重新上傳,爲什麼還要設置FileList呢?這聽起來像只是讓列表可見。 –

1

這是不可能的,因爲能夠設置默認目錄是一種安全風險。您不希望網站訪問您的文件系統。