gpt4 book ai didi

javascript - 使用 javascript FileReader API 时是否有文件大小限制?

转载 作者:数据小太阳 更新时间:2023-10-29 03:49:57 39 4
gpt4 key购买 nike

您可以使用 javascript FileReader API 来显示从文件输入字段提供的图像的预览。这在您不必使用服务器端 php 和 ajax 来显示图像的意义上非常有用。

不过我的问题是:

使用的图片文件大小有限制吗?就像如果用户要选择一个 20MB 的图像,filereader 是否能够处理它?机器内存是否有可能达到极限?

目前我只是在我的机器上进行本地测试。我试图加载一个 bmp 文件(53MB!),该文件在页面上处理和显示大约需要 15 秒。其他 1/2MB 的文件通常会立即显示。

这可能不是必需的,但这是我的 HTML 文件:(仅供引用:此代码在支持的浏览器中运行良好)

<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8"/>
<title>Dropzone File Upload</title>

</head>

<body>

<img id="uploadPreview" src="default.png" style="width: 100px; height: 100px;" />
<input id="uploadImage" type="file" name="myPhoto" onchange="PreviewImage();" />
<p id="uploadProgress">&nbsp;</p>

<script type="text/javascript">
function PreviewImage() {
var avatar_image = document.getElementById("uploadImage");
var avatar_preview = document.getElementById("uploadPreview");
var avatar_progress = document.getElementById("uploadProgress");

if ( window.FileReader ) { //if supports filereader

var imgReader = new FileReader();
imgReader.readAsDataURL(avatar_image.files[0]); //read from file input

imgReader.onloadstart = function(e) {
avatar_progress.innerHTML = "Starting to Load";
}
imgReader.onload = function (imgReaderEvent) {
//if file is image
if (
avatar_image.files[0].type == 'image/jpg' ||
avatar_image.files[0].type == 'image/jpeg' ||
avatar_image.files[0].type == 'image/png' ||
avatar_image.files[0].type == 'image/gif' ||
avatar_image.files[0].type == 'image/bmp'
) {
avatar_preview.src = imgReaderEvent.target.result;
}
else {
avatar_preview.src = 'filetype.png';
}
}
imgReader.onloadend = function(e) {
avatar_progress.innerHTML = "Loaded!";
}
}

/* For no support, use ActiveX instead */
else {
document.getElementById("uploadPreview").src = "nosupport.png";
}

};
</script>

</body>
</html>

最佳答案

Chrome 45 中的限制似乎是 261 MB。

不幸的是,当大小超过该限制时没有错误(FileReader.error == null),结果只是一个空字符串。

关于javascript - 使用 javascript FileReader API 时是否有文件大小限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20706418/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com