Javascript:使用 HTML 5 调整大小函数
Javascript: Resize function with HTML 5
我需要构建一个函数,从参数中获取文件,调整其大小并返回要上传的文件。
我已经有了获取文件的代码(使用 jQuery 文件上传),然后我获取文件变量并传递给我从此链接获得的名为 resizeImage 的方法,但我无法弄清楚如何返回我调整大小的文件(我是 javascript 的新手)。 所以我可以将其发送到亚马逊 S3。如果有人想看代码,这里是:http://pastebin.com/bgYLSFsR
这是我提出的功能:
function resizeImage(f) {
var file = f;
var img = document.createElement("img");
var reader = new FileReader();
reader.onload = function(e) {img.src = e.target.result}
reader.readAsDataURL(file);
var MAX_WIDTH = 100;
var MAX_HEIGHT = 100;
var width = img.width;
var height = img.height;
if (width > height) {
if (width > MAX_WIDTH) {
height *= MAX_WIDTH / width;
width = MAX_WIDTH;
}
} else {
if (height > MAX_HEIGHT) {
width *= MAX_HEIGHT / height;
height = MAX_HEIGHT;
}
}
var canvas = document.createElement('canvas');
canvas.width = width;
canvas.height = height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, 100, 100);
}
非常欢迎任何建议,谢谢!
您无法从客户端执行此操作,因为出于安全原因 - 浏览器禁止创建文件:
没有办法,除非它是一个文本文件,在这种情况下有一些有限的,
仅限客户端的解决方案,例如: http://jsfiddle.net/VBJ9h/319/使用:
<a href="data:application/octet-stream,field1%2Cfield2%0Afoo%2Cbar%0Agoo%2Cgai%0A">CSV</a>
在 lmitation 周围进行黑客攻击;它适用于文本文件,但 IE 会出现一个问题,因为它限制了 href 长度,这可能不适合您的文件。
另一种方法是使用flash,IE之类的Downloadify并将二进制表示传递给它。
第三个选项是将结果传递给服务器端控制器,该控制器将为您创建并返回映像。
相关文章:
- jQuery调整大小函数只适用于窗口
- 调整大小和调用函数
- 如何将此示例函数调整为Backbone
- 了解窗口调整大小事件与 scope.$apply 与函数$watch
- 调整Javascript函数中画布元素的大小
- jquery调整大小函数没有'不起作用
- 如何调整jQuery函数的属性值
- Javascript 函数调整窗口高度和宽度
- Javascript:使用 HTML 5 调整大小函数
- Javascript:如何调整我的去抖动函数以采用 IF 条件
- 如何运行窗口大小调整函数
- 调整屏幕大小后重命名函数
- 将javascript函数的结果调用到Jquery css事件中,加载和调整大小
- ASP .NET MVC 在背景上调用函数,在没有 JS 的情况下调整字体大小
- 原生 JavaScript 在调整大小后获取浏览器宽度,然后运行一个函数
- 当窗口大小调整到 480px 以下时调用函数
- 仅在调整窗口宽度大小时调用 jquery 函数
- 用于动态调整菜单大小的 scrollTop 函数
- jQuery调整大小函数的问题
- 对这个javascript函数进行了小的调整