FileReader 上传安全
FileReader upload safety
假设我有<input type="file">
没有任何表格,通过File
的Blob
javascript[=28获取这个input
选择的图像=]:
input.addEventListener('change', function(){
var reader = new FileReader();
reader.readAsDataURL(this.files[0]);
reader.onloadend = function() {
var base64data = reader.result;
var i = new Image();
i.src = base64data;
i.onload = function(){
var source = imageToDataUri(i,i.width,i.height,0.5);
});
仅此而已。比如说,我的服务器中根本没有 php 脚本。用户只需通过下面的代码上传图片,例如查看图片在网页中的显示效果。
在这种情况下,图片是否实际存储在我的服务器中的某处,如果是,有人可以通过选择 input
中的图片来填充服务器中的所有 space 吗?
可能是我没有正确理解blob技术。据我所知,如果我删除上面的 onchange
代码,只留下 input
标记,显然通过用户选择文件,不会向服务器发送任何内容(或者已经发送?)。在下面代码的哪一行,浏览器向我的服务器发送了任何类型的请求,那个请求是什么?
FileReader
和 Image
API 都不会将任何内容上传到您的服务器。这一切都发生在访问者计算机上的浏览器中。只有通过 fetch
或 XMLHttpRequest
的显式 HTTP 请求才会将实际的 HTTP 请求发送到您的服务器。
假设我有<input type="file">
没有任何表格,通过File
的Blob
javascript[=28获取这个input
选择的图像=]:
input.addEventListener('change', function(){
var reader = new FileReader();
reader.readAsDataURL(this.files[0]);
reader.onloadend = function() {
var base64data = reader.result;
var i = new Image();
i.src = base64data;
i.onload = function(){
var source = imageToDataUri(i,i.width,i.height,0.5);
});
仅此而已。比如说,我的服务器中根本没有 php 脚本。用户只需通过下面的代码上传图片,例如查看图片在网页中的显示效果。
在这种情况下,图片是否实际存储在我的服务器中的某处,如果是,有人可以通过选择 input
中的图片来填充服务器中的所有 space 吗?
可能是我没有正确理解blob技术。据我所知,如果我删除上面的 onchange
代码,只留下 input
标记,显然通过用户选择文件,不会向服务器发送任何内容(或者已经发送?)。在下面代码的哪一行,浏览器向我的服务器发送了任何类型的请求,那个请求是什么?
FileReader
和 Image
API 都不会将任何内容上传到您的服务器。这一切都发生在访问者计算机上的浏览器中。只有通过 fetch
或 XMLHttpRequest
的显式 HTTP 请求才会将实际的 HTTP 请求发送到您的服务器。