猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
上传之前可以检查图像尺寸吗?
我有一个用于将图像上传到服务器的上传控件,但是在上传之前,我只想确保图像尺寸正确。客户端上有什么可以用javascript完成的吗?
开心每一天1111
浏览 464
回答 3
3回答
慕丝7291255
您可以在提交表单之前检查它们:window.URL = window.URL || window.webkitURL;$("form").submit( function( e ) { var form = this; e.preventDefault(); //Stop the submit for now //Replace with your selector to find the file input in your form var fileInput = $(this).find("input[type=file]")[0], file = fileInput.files && fileInput.files[0]; if( file ) { var img = new Image(); img.src = window.URL.createObjectURL( file ); img.onload = function() { var width = img.naturalWidth, height = img.naturalHeight; window.URL.revokeObjectURL( img.src ); if( width == 400 && height == 300 ) { form.submit(); } else { //fail } }; } else { //No file was input or browser doesn't support client side reading form.submit(); }});这仅适用于现代浏览器,因此您仍然必须在服务器端检查尺寸。您也不能信任客户端,因此这是您仍然必须在服务器端检查它们的另一个原因。
0
0
0
神不在的星期二
可能会晚一点,但这是使用promise接受的答案的现代ES6版本const getUploadedFileDimensions: file => new Promise((resolve, reject) => { try { let img = new Image() img.onload = () => { const width = img.naturalWidth, height = img.naturalHeight window.URL.revokeObjectURL(img.src) return resolve({width, height}) } img.src = window.URL.createObjectURL(file) } catch (exception) { return reject(exception) }})你会这样称呼它getUploadedFileDimensions(file).then(({width, height}) => { console.log(width, height)})
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
JavaScript
JQuery
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续