文件上传功能的疑问???
function FileLoad(settings) {
this.input = settings.input;
this.imgView = settings.imgView;
this.delBtn = settings.delBtn;
this.init();
}
var image_base64="";
var image_name="";
FileLoad.prototype = {
init: function () {
var _this = this;
//
if (typeof(FileReader) === 'undefined') {
} else {
//“change”方法绑定,触发文件读取方法
this.input.on("change", function () {
_this.readFile.call(_this);
});
}
//del方法清除绑定信息
_this.delBtn.on("click", function (e) {
_this.imgView.html("");
_this.input.val("");
image_name="";
image_base64="";
$(this).hide();
})
},
readFile: function () {
var _this = this;
var file = this.input[0].files[0];//获取文件
if(file.size>3145728){
//alertWarning('请上传小于3M的图片','top');
alert('请上传小于3M的图片');
$("#fileInput").val("");
return false;
}
image_name=file.name;
var fileType = file.type;
if (fileType && !/image\/\w+/.test(fileType)) {
alert("请上传图片文件");
return false;
}
var $img = new Image();
//问题一:“webkitURL.createObjectURL”是什么作用?
var url = webkitURL.createObjectURL(file);
$img.onload = function() {
//生成比例
var width = $img.width;
var height = $img.height;
if (width>height){
if (width>600){
height = height * (600/width);
width = parseInt(600);
}
}else if (height > width){
if (height > 600){
width = width * (600/height);
height = parseInt(600);
}
}else {
if (width >600){
width = parseInt(600);
height = parseInt(600);
}
}
//生成canvas
var $canvas = document.createElement('canvas');
var ctx = $canvas.getContext('2d');
$canvas.width= width;
$canvas.height = height;
ctx.drawImage($img, 0, 0, width, height);
问题二:为什么要先将图片放入canvas中,然后再从canvas中获取图片?
image_base64 = $canvas.toDataURL('image/png',0.3);
image_base64=encodeURIComponent(image_base64);
问题三:“encodeURIComponent”作用是什么???
_this.imgView.html('<img src="'+url+'"/>');
_this.delBtn.show();
}
$img.src = url;
}
}
相关推荐
JSP 实现文件上传功能
本代码主要应用的是jsp技术,而实现的文件上传功能,这个功能也是比较常见的,也是比较常用的,更是在网络中比较流行的。 技术为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法。JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作。 Web应用开发的JavaServer Pages技术方法 在开发JSP规范的过程中,太阳微系统公司(Sun Microsystems Inc.)与许许多多主要的Web服务器、应用服务器和开发工具供应商,以及各种各样富有经验的开发团体进行合作。其结果是找到了一种为应用和页面开发人员平衡了可移植性和易用性的开发方法。 JSP技术在多个方面加速了动态Web页面的开发: 将内容的生成和显示进行分离 使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。 在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。 强调可重用的组件 绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。 采用标识简化页面开发 Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。 通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。
利用MultipartFile实现文件上传功能
主要为大家详细介绍了利用MultipartFile实现文件上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
JS 实现文件上传功能
js实现文件上传功能,无需安装flash
vue实现文件上传读取及下载功能
主要为大家详细介绍了vue实现文件上传读取及下载功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
C#实现文件上传及文件下载功能实例代码
件上传文件下载需求在项目中经常会遇到,今天小编给大家分享C#实现文件上传及文件下载功能实例代码,需要的朋友参考下吧


