{
getFileUrl: function getFileUrl(fileInputId) {
var uri = {
url: '',
filename: '',
filetype: '',
data: ''
}; var fileObj = typeof fileInputId === 'string' ? document.getElementById(fileInputId) : fileInputId; if (!utils.isCanUploadFileAsync || !fileObj) {
return uri;
}
try {
if (window.URL.createObjectURL) {
var fileItems = fileObj.files;
if (fileItems.length > 0) {
var u = fileItems.item(0);
uri.data = u;
uri.url = window.URL.createObjectURL(u);
uri.filename = u.name || '';
}
} else {
// IE
var u = document.getElementById(fileInputId).value;
uri.url = u;
var pos1 = u.lastIndexOf('/');
var pos2 = u.lastIndexOf('\\');
var pos = Math.max(pos1, pos2);
if (pos < 0) uri.filename = u;else uri.filename = u.substring(pos + 1);
}
var index = uri.filename.lastIndexOf('.');
if (index != -1) {
uri.filetype = uri.filename.substring(index + 1).toLowerCase();
}
return uri;
} catch (e) {
throw e;
}
}, getFileSize: function getFileSize(file) {
var fileSize = this.getFileLength(file);
if (fileSize > 10000000) {
return false;
}
var kb = Math.round(fileSize / 1000);
if (kb < 1000) {
fileSize = kb + ' KB';
} else if (kb >= 1000) {
var mb = kb / 1000;
if (mb < 1000) {
fileSize = mb.toFixed(1) + ' MB';
} else {
var gb = mb / 1000;
fileSize = gb.toFixed(1) + ' GB';
}
}
return fileSize;
}, getFileLength: function getFileLength(file) {
var fileLength = 0;
if (file) {
if (file.files) {
if (file.files.length > 0) {
fileLength = file.files[0].size;
}
} else if (file.select && 'ActiveXObject' in window) {
file.select();
var fileobject = new ActiveXObject('Scripting.FileSystemObject');
var file = fileobject.GetFile(file.value);
fileLength = file.Size;
}
}
return fileLength;
}
}

上传图片转为blob URL和计算文件大小的更多相关文章

  1. 指定URL,计算文件大小

    将http://www.baidu.com替换成指定的URL,就可以获得文件的大小. 文件大小已经转换为以KB为单位. url对象用openconnection()打开连接:获得URLConnecti ...

  2. Taro文件上传:Blob Url下载Blob对象本身并通过接口上传到服务器

    最近项目的文件上传遇到一个问题,就是Taro的chooseImage传给回调的是一个Blob对象,一般来说,上传控件都会导出Data Url,而Taro给了一个Blob Url,问题在于,我直接令im ...

  3. php 接收blob数据流,base64数据流 转为 blob二进制数据流

    php正常接收参数的方式如下:$_GET$_POST$_REQUEST 但是如果跨语言接收请求参数的话,可能会出现一系列的问题,其他语言的http请求可能是基于数据流的概念来传递参数的,如果按照常规处 ...

  4. 网络基础、ftp任务(进度条、计算文件大小、断点续传、搭建框架示例)

    一.网络基础 1.端口,是什么?为什么要有端口? 端口是为了将同一个电脑上的不同程序进行隔离. IP是找电脑:端口是找电脑上的应用程序: 端口范围:1 – 65535 :    1 - 1024 不要 ...

  5. php 计算文件大小

    计算文件大小 主要计算文件的 size 大小,默认的为Bytes的,所以运用三元运算符,来进行转换. 转换成 Bytes->KB->MB->GB /** * @param $size ...

  6. 上传图片转为base64格式预览并压缩图片(不兼容IE9以下浏览器,兼容移动端ios,android)

    前些天公司要求在微信移动端做上传图片并预览的功能,要求能够调用摄像头拍照并立即预览. 在网上搜了一些方法,开始自己写了个简单的功能实现代码.结果发现移动端拍照出来的图片动不动就2M+,又因为要批量上传 ...

  7. jquery 上传图片转为base64,ajax提交到后台

    支持多张图片上传.图片上传数量修改.可以删除 <!DOCTYPE html> <html> <head> <meta charset="utf-8& ...

  8. Java堆栈的应用2----------中缀表达式转为后缀表达式的计算Java实现

    1.堆栈-Stack 堆栈(也简称作栈)是一种特殊的线性表,堆栈的数据元素以及数据元素间的逻辑关系和线性表完全相同,其差别是线性表允许在任意位置进行插入和删除操作,而堆栈只允许在固定一端进行插入和删除 ...

  9. URLs对象 blob URL

    把指向数据的URL保存到file或者blob对象里,好处就是不需要先文件读取内容然后才能用.   function createObjectURL(blob){if (window.URL){retu ...

随机推荐

  1. break、continue和return的区别

    break.continue和return的区别 break function myBreak() { for(var i = 0; i < 5; i++) { if(i == 3) { bre ...

  2. Python3解leetcode Symmetric Tree

    问题描述: Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). ...

  3. nagios客户端安装与配置windows篇

    一.被监控的windows xp客户端的配置 1.安装NSClient++并安装下载地址: http://sourceforge.net/projects/nscplusNSClient++-0.3. ...

  4. 分布式环境下的session管理

    一.分布式Session的几种实现方式 1.1.基于cookie 进行session共享 简单.方便,每次通过判断cookie中的用户状态信息判断用户的登录状态:但是用户信息要存在客户端,存在安全隐患 ...

  5. 数据字典生成工具(生成Excel, Word,PDF,html)

    转自:http://www.cnblogs.com/yanweidie/p/3838765.html 数据字典生成工具之旅系列文章导航 数据字典生成工具之旅系列文章导航 宣传语 数据字典生成工具.数据 ...

  6. 【248】◀▶IEW-Unit13

    Unit 13 Technology 流程图讲解 1.model1对应图片讲解 2.Model1范文分析 Model 1 The ice cream making process has five k ...

  7. 02_SQliteOpenHelper介绍&oncreate方法介绍

    file:///D:/BaiduNetdiskDownload/adt-bundle-windows-x86_64_20140101/adt-bundle-windows-x86_64_2014010 ...

  8. Gym - 100851A Adjustment Office(O(1)求行列和)

    Adjustment Office Gym - 100851A 2       3       4 3       4       5 4       5       6 n<=10^6,q&l ...

  9. 51Nod - 1092 回文字符串(添加删除字符LCS变形)

    回文字符串 回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串.每个字符串都可以通过向中间添加一些字符,使之变为回文字符串. 例如:abbc 添加2个字符可以变为 acbbca, ...

  10. Json文件转Excel

    先创建一个web项目,在根目录放置需要转换的json文件,直接读取静态Json文件加载数据进行转换,代码如下: string Json = string.Empty; List<object&g ...