Javascript 如何使用XMLHttpRequest上传预定义文件?
假设我有一个data.txt文件,我想使用POST和XHR发送它 我找到了。我所有的谷歌搜索都使用了FormData对象Javascript 如何使用XMLHttpRequest上传预定义文件?,javascript,html,Javascript,Html,假设我有一个data.txt文件,我想使用POST和XHR发送它 我找到了。我所有的谷歌搜索都使用了FormData对象 <input type="file" id="uploadfile" name="uploadfile" /> <input type="button" value="upload" onclick="upload()" /> <script> var client = new XMLHttpRequest(); function up
<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" />
但显然我们只是
那么,无论是否使用FormData,我都知道我想发送此文件而不选择它,如何实现这一点呢?出于非常明显的安全原因,您的要求是不可能的 想象一下,一个网站可以从你的机器上抓取它想要的任何文件,并将其上传到它的服务器上,而不需要你的任何交互或授权
但你能做的是,为了确保上传的文件正确无误,需要添加一个服务器端,在处理之前检查上传的文件名是否为data.txt。想象一下,任何人都可以从你的计算机上选择要上传的文件。这是不可能的。真的,我只能上传我自己选择的文件吗?这不是一个巨大的安全问题吗违反我可以写一个网站,将随机文件发送到server@user181716对这就是我的想法。否则会引起很大的安全问题。您可以尝试创建一个不使用浏览器运行的脚本。由于web安全原因,浏览器阻止了您尝试实现的目标。这与无法从“%”获取文件的完整本地路径的原因相同。