javascript - FileReader 上传安全
问题描述
假设我<input type="file">
没有任何表格,并input
通过File
的Blob
javascript API 获取由此选择的图像:
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
吗?
可能,我没有正确理解 blob 技术。据我了解,如果我删除onchange
上面的代码,只留下input
标记,显然通过用户选择文件,什么都不会发送到服务器(或已经发送?)。在下面代码的哪一行,浏览器向我的服务器发送任何类型的请求,那个请求是什么?
解决方案
FileReader
nor Image
API不会将任何内容上传到您的服务器。这一切都发生在访问者计算机上的浏览器中。只有通过显式 HTTP 请求fetch
或XMLHttpRequest
将导致实际的 HTTP 请求被发送到您的服务器。
推荐阅读
- spring - Spring Batch DelimitedLineTokenizer - 用双引号解析字符串
- python - 将 bokeh BoxAnnotation 推到后台
- css - 当属性更改值时,为什么我的 css 属性选择器不会刷新
- html - 如何使用 CSS 让我的列一个接一个地显示?
- javascript - 如何更改amcharts中y轴的文字
- html - SVG 没有完美移动
- r - 是否有更轻的 Rstudio 版本可用?
- javascript - 反应 setState 数组问题
- vb.net - 从 VB.NET 调用时注销、重新启动和关闭访问被拒绝 (5)
- flutter - 参数类型“Function”不能分配给参数类型“void Function()?” 在零安全之后