如果我上传超过2MB的文件,则不接受。我的需要是,
1)例如,如果我上传5MB文件,我需要转换小于50kb或更少。
2)如果文件大小很大,它需要花费更多时间来加载,并且破坏了我的性能。
那么如果我上传的文件大小超过5或10MB,我该如何将文件大小转换为小于KB。
$(function() {
var fileInput = $('.upload-file');
var maxSize = fileInput.data('max-size');
$('.upload-form').submit(function(e) {
if (fileInput.get(0).files.length) {
var fileSize = fileInput.get(0).files[0].size; // in bytes
if (fileSize > maxSize) {
alert('file size is more then' + maxSize + ' bytes');
return false;
} else {
alert('file size is correct- ' + fileSize + ' bytes');
}
} else {
alert('choose file, please');
return false;
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form class="upload-form">
<input class="upload-file" data-max-size="2048" type="file">
<input type=submit>
</form>
angularjs中还有其他最简单的方法吗?有人可以帮我吗?
答案 0 :(得分:0)
很抱歉,但是没有,压缩所有文件没有简单的方法,否则它将是常态。许多文件格式已经使用压缩来保持文件大小不变,例如PNG,JPEG,MP3,MS Office文档等,这些都可以在这里列出。
如果文件已经压缩,那么可能没有任何压缩量可以大大改善。
最大上传大小通常由服务器控制,上传到上传时间由客户端和主机之间的网络控制。如果用户试图通过良好的3G连接以大约6Mbps的速度上传10Mb文件,则需要大约8秒钟。我害怕,不管怎么回事。
你唯一能做的就是管理用户的期望,展示加载微调器并让他们等待。现代浏览器允许您使用XMLHttpRequest(AJAX)上传文件,允许页面在上传过程中继续执行其他操作。