0
假設我有一個文件data.txt,我想用POST和XHR發送它。如何使用XMLHttpRequest上傳預定義的文件?
我找到了this。我所有的谷歌搜索都導致使用FormData對象。
<input type="file" id="uploadfile" name="uploadfile" />
<input type="button" value="upload" onclick="upload()" />
<script>
var client = new XMLHttpRequest();
function upload()
{
var file = document.getElementById("uploadfile");
/* Create a FormData instance */
var formData = new FormData();
/* Add the file */
formData.append("upload", file.files[0]);
client.open("post", "/upload", true);
client.setRequestHeader("Content-Type", "multipart/form-data");
client.send(formData); /* Send to server */
}
/* Check the response status */
client.onreadystatechange = function()
{
if (client.readyState == 4 && client.status == 200)
{
alert(client.statusText);
}
}
</script>
這個例子看起來不錯,但我希望文件上傳時沒有選擇它,而不是在這個代碼中的情況。
所以我想過把一個自定義值在文件輸入這樣的:
<input value = "data.txt" type="file" id="uploadfile" name="uploadfile" />
但很顯然,我們只是can't do it。
那麼我怎樣才能實現這個有或沒有使用FormData知道我想發送這個文件而不採摘它?
想象一下,任何人都可以選擇任何文件從計算機上傳下載。它無法完成。 – epascarello
真的,我只能上傳自己挑選的文件嗎? – user181716
這不是一個巨大的安全違規?我可以寫一個網站發送隨機文件到服務器 – beautifulcoder