IOS6已发布,我一直在测试照片上传。
它的效果很好,但是在3G以上的大图像下,它的速度却很慢。
借助File API和Canvas,可以使用JavaScript调整图像大小。我希望,如果在尝试上传图像之前调整图像的大小,它们将更快地上传-
为快速的用户体验提供帮助。随着智能手机处理器以比网络速度快得多的速度增长,我相信这种解决方案是赢家。
但是,用jQuery的Ajax实现它最困难。感谢您提供任何建议或帮助,因为此代码对于IOS6之后的移动Web应用程序开发可能非常有用。
var fileType = file.type,
reader = new FileReader();
reader.onloadend = function () {
var image = new Image();
image.src = reader.result;
image.onload = function () {
//Detect image size
var maxWidth = 960,
maxHeight = 960,
imageWidth = image.width,
imageHeight = image.height;
if (imageWidth > imageHeight) {
if (imageWidth > maxWidth) {
imageHeight *= maxWidth / imageWidth;
imageWidth = maxWidth;
}
} else {
if (imageHeight > maxHeight) {
imageWidth *= maxHeight / imageHeight;
imageHeight = maxHeight;
}
}
//Create canvas with new image
var canvas = document.createElement('canvas');
canvas.width = imageWidth;
canvas.height = imageHeight;
var ctx = canvas.getContext("2d");
ctx.drawImage(this, 0, 0, imageWidth, imageHeight);
// The resized file ready for upload
var finalFile = canvas.toDataURL(fileType);
if (formdata) {
formdata.append("images[]", finalFile);
$.ajax({
url: "upload.php",
type: "POST",
data: formdata,
dataType: 'json',
processData: false,
contentType: false,
success: function (res) {
//successful image upload
}
});
}
}
}
reader.readAsDataURL(file);
我刚刚开发了用于客户端 画布 图像大小调整的jQuery插件。它还处理 方向 和 iOS6压缩的图像 问题。
您可以尝试:http :
//gokercebeci.com/dev/canvasresize
用法:
$.canvasResize(file, {
width : 300,
height : 0,
crop : false,
quality : 80,
callback: function(dataURL, width, height){
// your code
}
});
快速上手 demo 地址 https://github.com/ChenShenhai/koa2-note/tree/master/demo/upload-async 源码理解 demo源码目录 . ├── index.js # 后端启动文件 ├── node_modules ├── package.json ├── static # 静态资源目录 │ ├── image # 异步上传图片存储
本文向大家介绍java web图片上传和文件上传实例,包括了java web图片上传和文件上传实例的使用技巧和注意事项,需要的朋友参考一下 图片上传和文件上传本质上是一样的,图片本身也是文件。文件上传就是将图片上传到服务器,方式虽然有很多,但底层的实现都是文件的读写操作。 注意事项 1.form表单一定要写属性enctype="multipart/form-data" 2.为了能保证文件能上传成功
本文向大家介绍PHP实现文件上传和多文件上传,包括了PHP实现文件上传和多文件上传的使用技巧和注意事项,需要的朋友参考一下 在PHP程序开发中,文件上传是一个使用非常普遍的功能,也是PHP程序员的必备技能之一。值得高兴的是,在PHP中实现文件上传功能要比在Java、C#等语言中简单得多。下面我们结合具体的代码实例来详细介绍如何通过PHP实现文件上传和多文件上传功能。 要使用PHP实现文件上传功能,
以下是我现在使用HTML5文件API上传多个图像的代码片段: 我想在使用canvas对象上传之前调整图像大小,但没有这方面的经验,我不确定如何使用技术更新代码,例如这里描述的技术:HTML5在上传之前预调整图像大小 将返回一个编码字符串。但是我需要发布对象。 您将如何(合理地)为大多数现代浏览器编写跨浏览器功能,以便在上传之前调整文件大小,以透明方式处理jpg、png和GIF:
问题内容: 我想用jQuery异步上传文件。 我只获取文件名,而不是上传文件。我该怎么做才能解决此问题? 问题答案: 使用HTML5,你可以使用Ajax和jQuery进行文件上传。不仅如此,你还可以执行文件验证(名称,大小和MIME类型)或使用HTML5进度标签(或div)处理进度事件。最近,我不得不制作一个文件上传器,但是我不想使用Flash,iframes或插件,经过一番研究后,我想到了解决方
问题内容: 看来我还没有清楚地传达出我的问题。我需要发送一个文件(使用AJAX),并且需要使用Nginx HttpUploadProgressModule 获取文件的上传进度。我需要一个很好的解决方案。我已经尝试过使用jquery.uploadprogress插件,但是我发现自己不得不重写其中的大部分内容,以使其在所有浏览器中都能正常工作并使用AJAX发送文件。 我所需要的只是执行此操作的代码,它