Javascript 是否可以在上载之前调整html表单上的图像(客户端)大小?
我有一个标准的html输入表单,其中包含一个用于上传文件(图像)的字段 不幸的是,我无法编辑处理该文件的后端php,但我需要将图像调整到一定大小 我在想,在实际提交到PHP表单之前,可以通过jquery或其他客户端方法在表单上调整图像的大小,从而实现这一技巧 这可能吗?有人知道一个好方法吗Javascript 是否可以在上载之前调整html表单上的图像(客户端)大小?,javascript,jquery,html,forms,upload,Javascript,Jquery,Html,Forms,Upload,我有一个标准的html输入表单,其中包含一个用于上传文件(图像)的字段 不幸的是,我无法编辑处理该文件的后端php,但我需要将图像调整到一定大小 我在想,在实际提交到PHP表单之前,可以通过jquery或其他客户端方法在表单上调整图像的大小,从而实现这一技巧 这可能吗?有人知道一个好方法吗 谢谢 您可以使用新的FileReader让用户从本地文件系统中选择图像 然后可以根据需要使用画布调整图像大小 此代码允许用户选择本地图像文件 在客户端,图像将缩放到一半大小 <!doctype htm
谢谢 您可以使用新的FileReader让用户从本地文件系统中选择图像 然后可以根据需要使用画布调整图像大小 此代码允许用户选择本地图像文件 在客户端,图像将缩放到一半大小
<!doctype html>
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<title>Image preview example</title>
<script type="text/javascript">
oFReader = new FileReader(), rFilter = /^(?:image\/bmp|image\/cis\-cod|image\/gif|image\/ief|image\/jpeg|image\/jpeg|image\/jpeg|image\/pipeg|image\/png|image\/svg\+xml|image\/tiff|image\/x\-cmu\-raster|image\/x\-cmx|image\/x\-icon|image\/x\-portable\-anymap|image\/x\-portable\-bitmap|image\/x\-portable\-graymap|image\/x\-portable\-pixmap|image\/x\-rgb|image\/x\-xbitmap|image\/x\-xpixmap|image\/x\-xwindowdump)$/i;
oFReader.onload = function (oFREvent) {
var img=new Image();
img.onload=function(){
document.getElementById("originalImg").src=img.src;
var canvas=document.createElement("canvas");
var ctx=canvas.getContext("2d");
canvas.width=img.width/2;
canvas.height=img.height/2;
ctx.drawImage(img,0,0,img.width,img.height,0,0,canvas.width,canvas.height);
document.getElementById("uploadPreview").src = canvas.toDataURL();
}
img.src=oFREvent.target.result;
};
function loadImageFile() {
if (document.getElementById("uploadImage").files.length === 0) { return; }
var oFile = document.getElementById("uploadImage").files[0];
if (!rFilter.test(oFile.type)) { alert("You must select a valid image file!"); return; }
oFReader.readAsDataURL(oFile);
}
</script>
</head>
<body onload="loadImageFile();">
<form name="uploadForm">
<table>
<tbody>
<tr>
<td><img id="originalImg"/></td>
<td><img id="uploadPreview"/></td>
<td><input id="uploadImage" type="file" name="myPhoto" onchange="loadImageFile();" /></td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
图像预览示例
oFReader=newfilereader(),rFilter=/^(3)以下::::::图像\/bmp(医学院校)图像\/bmp(医学院校)图像\/bmp(医学院校)图像\/以下以下以下::::::::::::::::::图像\/bmp图像\/bmp(医学院校)图像\/医学院校图像\/医学院校图像\/中美中美中美两国的图像\/中学中学中学中学化学化学化学化学化学化学化学化学化学化学化学化学中学中学中学中学中学学生学生学生学生的图像图像\/图像\/图像\/图像\/图像\/图像\/医学医学医学院校学生学生学生学生学生学生学生学生学生学生学生学生学生学生学生学生学生学生学生学生学生学生学生学生学生学生学生学生图像\/图像\/图像\/图像\/中学中学中学中学中学中学中学化学化学化学化学化学化学化学化学化学化学化学化学化学化学中学中学中学中学中学中学中学中学中学中学中学化学化学化学化学化学化学化学化学化学化学化学化学化学化学化学化学化学化学化学化学化学化学化学化学x \-rgb |图像\/x \-xbitmap |图像\/x \-xpixmap|图像\/x \-xwindowdump)$/i;
oFReader.onload=函数(OFRENT){
var img=新图像();
img.onload=函数(){
document.getElementById(“originalImg”).src=img.src;
var canvas=document.createElement(“canvas”);
var ctx=canvas.getContext(“2d”);
画布宽度=img.width/2;
canvas.height=img.height/2;
ctx.drawImage(img,0,0,img.width,img.height,0,0,canvas.width,canvas.height);
document.getElementById(“uploadPreview”).src=canvas.toDataURL();
}
img.src=ofretent.target.result;
};
函数loadImageFile(){
if(document.getElementById(“uploadImage”).files.length==0){return;}
var of ile=document.getElementById(“uploadImage”).files[0];
如果(!rFilter.test(oFile.type)){alert(“您必须选择有效的图像文件!”);return;}
readAsDataURL(oFile);
}
现代浏览器支持FileReader(但IE需要10+)。可能的话,您可以将图像绘制到画布上,然后将其设置为数据URL。不确定它是否可以工作。如何将已调整大小的图像添加到mysql