Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何选择文件读取器读取方法?_Javascript_Image_Image Processing - Fatal编程技术网

Javascript 如何选择文件读取器读取方法?

Javascript 如何选择文件读取器读取方法?,javascript,image,image-processing,Javascript,Image,Image Processing,在制作一个简单的图片上传程序时,我正在学习FileReaderAPI。上传文件有4种格式,即数组缓冲区、二进制字符串、数据URL和文本,我想知道如何选择一种 在为数不多的几篇文章中,有一篇说,当你想显示上传的图片时,数据URL是好的,而当你操作文件时,数组缓冲区是好的。你怎么认为?而且,什么时候是选择二进制字符串或文本格式的好时机?对于“文件上传器”,您根本不应该使用文件阅读器。 您不需要读取文件就可以上载它 如果您需要在当前页面中显示它,您仍然不需要文件读取器,它将直接指向磁盘上的文件,而不会

在制作一个简单的图片上传程序时,我正在学习FileReaderAPI。上传文件有4种格式,即数组缓冲区、二进制字符串、数据URL和文本,我想知道如何选择一种

在为数不多的几篇文章中,有一篇说,当你想显示上传的图片时,数据URL是好的,而当你操作文件时,数组缓冲区是好的。你怎么认为?而且,什么时候是选择二进制字符串或文本格式的好时机?

对于“文件上传器”,您根本不应该使用文件阅读器。 您不需要读取文件就可以上载它

如果您需要在当前页面中显示它,您仍然不需要文件读取器,它将直接指向磁盘上的文件,而不会导致无用的内存膨胀

inp.onchange=e=>{
//是的,都是同步的。。。
const url=url.createObjectURL(inp.files[0]);
const img=新图像();
img.src=url;
文件.正文.附件(img);
};
对于“文件上传器”,您根本不应该使用文件阅读器。 您不需要读取文件就可以上载它

如果您需要在当前页面中显示它,您仍然不需要文件读取器,它将直接指向磁盘上的文件,而不会导致无用的内存膨胀

inp.onchange=e=>{
//是的,都是同步的。。。
const url=url.createObjectURL(inp.files[0]);
const img=新图像();
img.src=url;
文件.正文.附件(img);
};

如果您想以文本形式读取文件,例如CSV或JSON,您可以使用readAsText。@RobG Hi!当然,你是对的!所以,当我上传图像文件时,它们没有用,你认为呢?Kaido回答了这个问题,但简短的回答是肯定的。上传文件时不需要读取文件,但如果您只想接受某些类型而不依赖扩展名,则可能需要检查文件的标题(仍然不是万无一失的,但更难伪造)。如果您想以文本形式读取文件,例如CSV或JSON,则可以使用readAsText。@RobG Hi!当然,你是对的!所以,当我上传图像文件时,它们没有用,你认为呢?Kaido回答了这个问题,但简短的回答是肯定的。上传文件时不需要读取文件,但如果您只想接受某些类型而不依赖扩展名(仍然不是万无一失的,但更难伪造),则可能需要检查文件头。感谢您的回复!所以,如果我想在客户端调整大小,我会上传一个带有readAsArrayBuffer()的图像文件,对吗?@Heuyie no。除非你的解码器和编码器是用js编写的。但通常我们要做的是从blobURI中加载img元素中的图像,在画布上绘制调整大小的图像,然后获得调整大小的画布上的一个Blob。此外,如果我允许其他人上载文件,我需要读取文件并验证其文件类型,以确保安全性?@Heuyie这有点没用,坏人不会使用浏览器在你的服务器中注入坏东西。检查服务器端。您可以polyfill canvas.toBlob。谢谢你的回复!所以,如果我想在客户端调整大小,我会上传一个带有readAsArrayBuffer()的图像文件,对吗?@Heuyie no。除非你的解码器和编码器是用js编写的。但通常我们要做的是从blobURI中加载img元素中的图像,在画布上绘制调整大小的图像,然后获得调整大小的画布上的一个Blob。此外,如果我允许其他人上载文件,我需要读取文件并验证其文件类型,以确保安全性?@Heuyie这有点没用,坏人不会使用浏览器在你的服务器中注入坏东西。检查服务器端。您可以polyfill canvas.toBlob。