作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在为移动设备构建一个网站,它使用 angular-file-upload.min.js 从移动设备图像库上传图像。
html代码:
<div>
<div class="rating-camera-icon">
<input type="file" accept="image/*" name="file" ng-file-
select="onFileSelect($files)">
</div>
<img ng-show="fileName" ng-src="server/{{fileName}}" width="40"
style="margin-left:10px">
</div>
代码:
$scope.onFileSelect = function($files) {
for (var i = 0; i < $files.length; i++) {
var file = $files[i];
if (!file.type.match(/image.*/)) {
// this file is not an image.
};
$scope.upload = $upload.upload({
url: BASE_URL + 'upload.php',
data: {myObj: $scope.myModelObj},
file: file
}).progress(function(evt) {
// console.log('percent: ' + parseInt(100.0 * evt.loaded / evt.total));
// $scope.fileProgress = evt.loaded / evt.total * 100.0;
}).success(function(data, status, headers, config) {
// file is uploaded successfully
$scope.fileName = data;
});
}
};
在移动设备上上传非常慢。如何压缩文件?
最佳答案
将图像字符串化为 base-64 文本格式很好,但会花费少量时间,而且肯定不会压缩它。事实上,它可能会明显大于原始图像。不幸的是,您的浏览器也不会 gzip 上传。他们当然可以处理 gzip 压缩下载。您当然可以尝试使用一些纯 JS 解决方案对文本本身进行 gzip 压缩。在 github 上你可以找到这样的东西 - https://github.com/beatgammit/gzip-js但是,这也需要一些时间,并且不能保证图像的压缩文本版本比您附加的原始 JPEG 小。
如果合适,原生移动应用程序可能会决定在发送之前使用一些原生代码 JPEG 或 PNG 优化(基本上是对图像重新采样),但此时在 JavaScript 中执行此操作似乎存在潜在问题。鉴于阿特伍德定律(最终用 JavaScript 编写所有内容)它当然可以完成,但在 2014 年年中的这个时候还不能。
关于javascript - angularjs 在上传之前压缩图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23246861/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!