上传图片时,如何用js判断图片的尺寸大小是否合法?

Laughing 2011-04-22 04:19:32
上传图片时,如何用js判断图片的尺寸大小是否合法?如要求为不得大于80*100,这源于可恶的需求。
我在网上找了相关的代码,可是都不能使用,在这里请教大家!

请勿复制粘贴网上的代码!!!
...全文
626 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
hepeng_8 2011-04-22
  • 打赏
  • 举报
回复
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
BufferedImage image = ImageIO.read(new File("C:/cp.png"));
System.out.println(image.getWidth());
System.out.println(image.getHeight());
}

这样能得到图片的长和宽
huanggangmaojin 2011-04-22
  • 打赏
  • 举报
回复
js我没试过,但是直接在java代码里面设置是很简单的
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 t150ckh 的回复:]

+1引用 12 楼 yaoweijq 的回复:

en
服务端还是实在
引用 11 楼 rainsilence 的回复:
老实点,走服务器端把
[/Quote]

服务端吧,分两步:一步提交,一步保存,通过验证的的才能保存。
t150ckh 2011-04-22
  • 打赏
  • 举报
回复
+1[Quote=引用 12 楼 yaoweijq 的回复:]

en
服务端还是实在
引用 11 楼 rainsilence 的回复:
老实点,走服务器端把
[/Quote]
yaoweijq 2011-04-22
  • 打赏
  • 举报
回复
en
服务端还是实在
[Quote=引用 11 楼 rainsilence 的回复:]
老实点,走服务器端把
[/Quote]
rainsilence 2011-04-22
  • 打赏
  • 举报
回复
老实点,走服务器端把
Laughing 2011-04-22
  • 打赏
  • 举报
回复
yaoweijq,我周一试下,正式下班了,thanks
Laughing 2011-04-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 rainsilence 的回复:]

用Js判断方法有3种:有了html5后又多了一种,下面列举其中一种
var image = new Image();

image.onload = function() {
alert(image.getWidth());
alert(image.getHeight());
}

image.src = "url";

但是由于ie8下file控件取不到正确……
[/Quote]
我试过这种方法,ie8下跟没有这些代码一个样,起不到作用
yaoweijq 2011-04-22
  • 打赏
  • 举报
回复
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>添加首页浮动图片</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<style type="text/css">
#newPreview
{
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);
}
</style>
<script type="text/javascript" language="javascript">
function PreviewImg(imgFile)
{
//原来的预览代码,不支持 IE7。
//var oldPreview = document.getElementById("oldPreview");
//oldPreview.innerHTML = "<img src=\"file:\\\\" + imgFile.value + "\" width=\"80\" height=\"60\" />";
//新的预览代码,支持 IE6、IE7。
var newPreview = document.getElementById("newPreview");
var uploadValue = imgFile.value;
var len = uploadValue.length;
var fileType = uploadValue.substr(uploadValue.lastIndexOf(".")+1,len).toLowerCase();
if((fileType !='bmp') && (fileType != 'jpg') && (fileType != 'jpeg') && (fileType != 'gif') && (fileType != 'png')){
alert('文件类型不正确,请重新选择');
return;
}
newPreview.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgFile.value;
newPreview.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = "image";
newPreview.style.width = "50px";
newPreview.style.height = "60px";
setTimeout("kk()",2000);
}
var final_width = 0;
var final_height = 0;
function kk(){
var newPreview = document.getElementById("newPreview");
final_width = newPreview.offsetWidth;
final_height = newPreview.offsetHeight;
}
</script>

<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript">
function sub(){
var f = document.getElementById("form1");
var uploadValue = document.getElementById('fileToUpload').value;
if(uploadValue==''){
alert('请选择文件');
return;
}
var img = new Image();//构造JS的Image对象
//alert(img.src);
//img.src = f.fileToUpload.value;//将本地图片赋给image对象
img.src = document.form1.fileToUpload.value;
var len = uploadValue.length;
var fileType = uploadValue.substr(uploadValue.lastIndexOf(".")+1,len).toLowerCase();
if((fileType !='bmp') && (fileType != 'jpg') && (fileType != 'jpeg') && (fileType != 'gif') && (fileType != 'png')){
alert('文件类型不正确,请重新选择');
return;
}
if(final_width != 80 || final_height != 80){
alert("文件的大小不正确,必须为80*80像素");
return;
}
var link = document.getElementById('link').value;
if(!(link.indexOf('http://') == 0 || link.indexOf('https://') ==0 ) ) {
alert('链接不正确,必须以http://或https://开头');
return;
}
f.action = "npage/cms/main/doAddFloatingPic.jsp";
f.submit();
}
</script>
</head>

<body>
<!-- 添加浮动图片的form 这个页面宽度打开为450-->
<form id="form1" name="form1" enctype="multipart/form-data" method="post" action="doAddFloatingPic.jsp">
<div class="importTable">
<font color="red">
提醒:有效文件类型:gif,png,jpg,bmp.     上传图片大小为:80像素 X 80像素</font>
<br/><br/>
<table width="100%" border="0" cellspacing="1" cellpadding="0">
<tbody>
<tr>
<td width="70px">选择图片:</td>
<td width="380px"><input id="fileToUpload" type="file" size="30" name="fileToUpload" class="input" contenteditable="false" onchange="javascript:PreviewImg(this);"></td>
</tr>
<tr>
<td>图片预览:</td>
<td><div id="newPreview"></div></td>
</tr>
<tr>
<td>设置链接:</td>
<td><input type="text" id="link" name="link" size="29"/></td>
</tr>
<tr>
<td>是否隐藏:</td>
<td>
<input type="radio" name="is_hidden" value="Y"/>是
<input type="radio" name="is_hidden" value="N" checked/>否
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="button" class="btn_system" value="增加" onclick="javascript:sub();"/>
</td>
</tr>
</tbody>
</table>
</div>
</form>

</body>
</html>

最近刚弄的
ie6 7可以用
ff ie8不清楚
rainsilence 2011-04-22
  • 打赏
  • 举报
回复
用Js判断方法有3种:有了html5后又多了一种,下面列举其中一种
var image = new Image();

image.onload = function() {
alert(image.getWidth());
alert(image.getHeight());
}

image.src = "url";

但是由于ie8下file控件取不到正确的path,所以用什么方法只要是通过file控件来的path,都不行。干脆直接上传通过java来判断。
Laughing 2011-04-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 rainsilence 的回复:]

Java code
import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;

public class Test {


/**
* @param args
*/
public static void main(String[] ……
[/Quote]
服务器端代码行?
上传图片时,图片在客户机上。
rainsilence 2011-04-22
  • 打赏
  • 举报
回复
我觉得,就算人家不符合要求,你把人家的图片转成你需要的大小不是更加好?
rainsilence 2011-04-22
  • 打赏
  • 举报
回复
import java.awt.image.BufferedImage;
import java.io.File;

import javax.imageio.ImageIO;

public class Test {


/**
* @param args
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
BufferedImage image = ImageIO.read(new File("C:/cp.png"));
System.out.println(image.getWidth());
System.out.println(image.getHeight());
}

}
在Windows 10或Windows 11操作系统中,用户经常会遇到共享打印机出现的一系列错误代码,这些错误代码可能会阻碍打印机共享功能的正常使用。常见的错误代码包括0x00000057、0x00000709和0x0000011b,这些代码通常指出了不同的问题,比如权限不足、服务未运行或配置错误等。除此之外,还有一些故障提示如“连接失败”或“内存不足”,这些都可能影响到打印机共享的稳定性。 要解决这些故障,首先要确保打印机已经正确地连接到网络,并且在需要共享的电脑上进行了设置。确保打印机驱动程序是最新的,并且在共享设置中没有错误配置。对于权限问题,需要检查网络上的用户账户是否具有足够的权限来访问共享打印机。同,也要确保打印机服务正在运行,特别是“Print Spooler”服务,因为这是打印机共享服务的核心组件。 在某些情况下,问题可能与操作系统的更新有关,如升级到最新版的Windows 10或Windows 11后可能出现的兼容性问题。这,可能需要查看微软的官方支持文档来获取特定的解决方案或更新。 对于错误代码0x00000057,这通常是由于没有足够的权限来访问网络打印机或其共享资源,解决方法是确保网络打印机的权限设置正确,包括在组策略中设置相应的访问权限。而0x00000709错误可能是由于打印机驱动问题或打印机端口配置错误,可以尝试重新安装或更新打印机驱动来解决。至于0x0000011b错误,这往往是因为打印机队列服务的问题,检查并重启“Print Spooler”服务通常是解决这类问题的常见手段。 至于“连接失败”或“内存不足”这类故障,通常与客户端和打印机之间的网络连接以及打印机本地资源的使用情况有关。检查网络连接,确保打印机所在的网络段没有故障或中断。同,如果打印机的打印队列长间得不到处理,可能会导致内存不足的情况,这可能需要清理打印队列或增加打印机的内存配置。 为了帮助用户更快速地解决这些问题,市面上出现了各种打印机共享错误修复工具。这些工具往往通过预设的修复程序来自动检测和修正打印机共享中常见的问题。它们可以快速检查打印机驱动、网络连接以及共享设置,并且能够提供一键修复功能,大幅减少了用户自行排查和解决问题的难度。 然而,在使用这些修复工具之前,用户应确保这些工具的来源是安全可靠的,避免因使用不当的修复工具而引发其他系统安全或隐私问题。用户可以到官方平台或者信誉良好的软件提供商处下载这些工具。通过细心检查打印机的共享设置,及更新驱动程序和服务,以及合理使用修复工具,大多数共享打印机的问题都可以得到有效的解决。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧