jsp 图片限制大小

话不多说,直接上代码

<input type="file" id="drivinglicensepic" name="drivinglicensepic"  onchange="checkImage(this);"/>
//此处onchange方法表示文件选中时调用checkImage函数
<script type="text/javascript">
function checkImage(obj){
    var fileSize = 0;//设置获取图片大小为0 
    var tmpImageValue = obj.value; //获取所选中的图片路径
    var imageMaxSize = 1024*1024;//设置最大1M,可自定义限制大小 
    if(tmpImageValue != ""){  //如果选中了图片
        var fileSystem = new ActiveXObject("Scripting.FileSystemObject");   //调用ie系统控件
        var file = fileSystem.GetFile (tmpImageValue); //根据图片路径获取图片信息
        fileSize = file.Size; //获取图片大小
        var imgSize = fileSize/1024/1024; //图片大小转换为M(兆)单位
        var imgOver = ""+imgSize; //转换字符串,为了截取字符串
        if(imgOver.length>4){
            imgOver = imgOver.substring(0,4);//截取前4位,只是为了显示大小更容易看
        }
            if(fileSize>imageMaxSize){  //如果图片大小超过设定的大小
                alert("当前文件大小"+imgOver+ "M,超出最大限制");
                var file0 = $("#"+obj.id) ; //根据id获取图片
                file0.after(file0.clone().val("")); //克隆内容
                file0.remove(); //清空
                return false;
            }
        return false;
        }else{
        alert("请选择图片上传");
        return false;
    }
}
</script>
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1.在过去一年,小编写过一个批量上传图片的例子,那个例子是基于百度编辑器改造的,用起来必须依赖百度编辑器,所以小编就又弄了一个,就是今天要介绍的了,uploadify上传的了前端用flash,javascript编写,后端兼容java,php,.net等语言 2.首先在把“uploadify”文件夹放入项目中 3.页面上面引入 <script type="text/javascript" src="resource/js/uploadify/main.js"></script> (路径根据项目路径而定) 4.在js中写入以下配置: $(document).ready(function(){ var setting={ "id": "uploadify",//绑定的input的ID "swf": 'resource/js/uploadify/uploadify.swf',//[必须设置]swf的路径 "uploader": "site/txtOrTopicImageUpload!txtOrTopicImageUpload.action?uid="+uid,//[必须设置]上传文件触发的url "auto":true,//文件选择完成后,是否自动上传 "buttonText":'+上传图片',//上传按钮的文字 "height": 40,//上传按钮的高和宽 "width": 100, "buttonCursor": 'pointer',//上传鼠标hover后Cursor的形状 //"cancelImage": "resource/js/uploadify/uploadify-cancel.png",//[必须设置]取消图片的路径 //"checkExisting":'/uploader/uploadify-check-existing.php',//检查上传文件是否存,触发的url,返回1/0 "debug": false,//debug模式开/关,打开后会显示debug时的信息 "fileObjName":'file', "fileSizeLimit" : 3*1024*1024,//文件的极限大小,以字节为单位,0为不限制。1MB:1*1024*1024 "fileTypeDesc": '图片',//允许上传的文件类型的描述,在弹出的文件选择框里会显示 "fileTypeExts": '*.jpg;*.bmp;*.gif;*.png',//允许上传的文件类型,限制弹出文件选择框里能选择的文件 "method": 'post',//和后台交互的方式:post/get "multi": true,//是否能选择多个文件 "queueID": 'None_none',//显示上传文件队列的元素id,可以简单用一个div来显示 "queueSizeLimit" : 10,//队列中允许的最大文件数目 "progressData" : 'all', // 'percentage''speed''all'//队列中显示文件上传进度的方式:all-上传速度+百分比,percentage-百分比,speed-上传速度 "removeCompleted" : true,//上传成功后的文件,是否在队列中自动删除 "removeTimeout": 0, "requeueErrors" : true, "postData": {},//和后台交互时,附加的参数 "preventCaching" : true, "transparent": true, "successTimeout" : 30,//上传时的timeout "uploadLimit":0,//能同时上传的文件数目 "onUploadSuccess" : function(file,data,response) {//上传完成时触发(每个文件触发一次) var a =eval("("+data+")");   imgArray[imageIndex]=a.result; showImges(imageIndex); $("#loading").hide(); }, "onDialogClose": function(queueData){ var result=countArray(imgArray),a=queueData.queueLength; if(a+result>image_size){ jDialog("一次最多上传10张图片!"); for(var s in queueData.files){ $("#uploadify").uploadify("cancel",s); } return; }if(a!=0){ $("#loading").show(); } } }; $("#uploadify").uploadify(setting); }); 5.下面是参数的详细配置: 使用: //绑定的界面元素<input id='gallery'type='file'/> $("#gallery").uploadify({ 设置参数,参数如下. }); 设置的属性: id: jQuery(this).attr('id'),//绑定的input的ID swf: 'http://www.static-xxx.nu/uploader/uploadify.swf',//[必须设置]swf的路径 uploader: '/uploadify/galleri.php',//[必须设置]上传文件触发的url auto:false,//文件选择完成后,是否自动上传 buttonText:'Välj Filer',//上传按钮的文字 height: 30,//上传按钮的高和宽 width: 120, buttonCursor: 'pointer',//上传鼠标hover后Cursor的形状 cancelImage: 'http://www.static-xxx.nu/uploadify-cancel.png',//[必须设置]取消图片的路径 checkExisting:'/uploader/uploadify-check-existing.php',//检查上传文件是否存,触发的url,返回1/0 debug: true,//debug模式开/关,打开后会显示debug时的信息 fileObjName:'file', fileSizeLimit : 0,//文件的极限大小,以字节为单位,0为不限制。1MB:1*1024*1024 fileTypeDesc: 'Bild JPG',//允许上传的文件类型的描述,在弹出的文件选择框里会显示 fileTypeExts: '*.jpg',//允许上传的文件类型,限制弹出文件选择框里能选择的文件 method: 'post',//和后台交互的方式:post/get multi: true,//是否能选择多个文件 queueID: 'fileQueue',//显示上传文件队列的元素id,可以简单用一个div来显示 queueSizeLimit : 999,//队列中允许的最大文件数目 progressData : 'all', // 'percentage''speed''all'//队列中显示文件上传进度的方式:all-上传速度+百分比,percentage-百分比,speed-上传速度 removeCompleted : true,//上传成功后的文件,是否在队列中自动删除 removeTimeout: 3, requeueErrors : true, postData: {},//和后台交互时,附加的参数 preventCaching : true, transparent: true, successTimeout : 30,//上传时的timeout uploadLimit:999//能同时上传的文件数目 设置的事件: onDialogClose : function(swfuploadifyQueue) {//当文件选择对话框关闭时触发   if( swfuploadifyQueue.filesErrored > 0 ){   alert( '添加至队列时有'   +swfuploadifyQueue.filesErrored   +'个文件发生错误n'   +'错误信息:'   +swfuploadifyQueue.errorMsg   +'n选定的文件数:'   +swfuploadifyQueue.filesSelected   +'n成功添加至队列的文件数:'   +swfuploadifyQueue.filesQueued   +'n队列中的总文件数量:'   +swfuploadifyQueue.queueLength);   } } onDialogOpen : function() {//当选择文件对话框打开时触发   alert( 'Open!'); } onSelect : function(file) {//当每个文件添加至队列后触发   alert( 'id: ' + file.id   + ' - 索引: ' + file.index   + ' - 文件名: ' + file.name   + ' - 文件大小: ' + file.size   + ' - 类型: ' + file.type   + ' - 创建日期: ' + file.creationdate   + ' - 修改日期: ' + file.modificationdate   + ' - 文件状态: ' + file.filestatus); } onSelectError : function(file,errorCode,errorMsg) {//当文件选定发生错误时触发   alert( 'id: ' + file.id   + ' - 索引: ' + file.index   + ' - 文件名: ' + file.name   + ' - 文件大小: ' + file.size   + ' - 类型: ' + file.type   + ' - 创建日期: ' + file.creationdate   + ' - 修改日期: ' + file.modificationdate   + ' - 文件状态: ' + file.filestatus   + ' - 错误代码: ' + errorCode   + ' - 错误信息: ' + errorMsg); } onQueueComplete : function(stats) {//当队列中的所有文件全部完成上传时触发   alert( '成功上传的文件数: ' + stats.successful_uploads   + ' - 上传出错的文件数: ' + stats.upload_errors   + ' - 取消上传的文件数: ' + stats.upload_cancelled   + ' - 出错的文件数' + stats.queue_errors); } onUploadComplete : function(file,swfuploadifyQueue) {//队列中的每个文件上传完成时触发一次   alert( 'id: ' + file.id   + ' - 索引: ' + file.index   + ' - 文件名: ' + file.name   + ' - 文件大小: ' + file.size   + ' - 类型: ' + file.type   + ' - 创建日期: ' + file.creationdate   + ' - 修改日期: ' + file.modificationdate   + ' - 文件状态: ' + file.filestatus   + ' - 出错的文件数: ' + swfuploadifyQueue.filesErrored   + ' - 错误信息: ' + swfuploadifyQueue.errorMsg   + ' - 要添加至队列的数量: ' + swfuploadifyQueue.filesSelected   + ' - 添加至对立的数量: ' + swfuploadifyQueue.filesQueued   + ' - 队列长度: ' + swfuploadifyQueue.queueLength); } onUploadError : function(file,errorCode,errorMsg,errorString,swfuploadifyQueue) {//上传文件出错是触发(每个出错文件触发一次)   alert( 'id: ' + file.id   + ' - 索引: ' + file.index   + ' - 文件名: ' + file.name   + ' - 文件大小: ' + file.size   + ' - 类型: ' + file.type   + ' - 创建日期: ' + file.creationdate   + ' - 修改日期: ' + file.modificationdate   + ' - 文件状态: ' + file.filestatus   + ' - 错误代码: ' + errorCode   + ' - 错误描述: ' + errorMsg   + ' - 简要错误描述: ' + errorString   + ' - 出错的文件数: ' + swfuploadifyQueue.filesErrored   + ' - 错误信息: ' + swfuploadifyQueue.errorMsg   + ' - 要添加至队列的数量: ' + swfuploadifyQueue.filesSelected   + ' - 添加至对立的数量: ' + swfuploadifyQueue.filesQueued   + ' - 队列长度: ' + swfuploadifyQueue.queueLength); } onUploadProgress : function(file,fileBytesLoaded,fileTotalBytes, queueBytesLoaded,swfuploadifyQueueUploadSize) {//上传进度发生变更时触发 alert( 'id: ' + file.id   + ' - 索引: ' + file.index   + ' - 文件名: ' + file.name   + ' - 文件大小: ' + file.size   + ' - 类型: ' + file.type   + ' - 创建日期: ' + file.creationdate   + ' - 修改日期: ' + file.modificationdate   + ' - 文件状态: ' + file.filestatus   + ' - 当前文件已上传: ' + fileBytesLoaded   + ' - 当前文件大小: ' + fileTotalBytes   + ' - 队列已上传: ' + queueBytesLoaded   + ' - 队列大小: ' + swfuploadifyQueueUploadSize); } onUploadStart: function(file) {//上传开始时触发(每个文件触发一次)   alert( 'id: ' + file.id   + ' - 索引: ' + file.index   + ' - 文件名: ' + file.name   + ' - 文件大小: ' + file.size   + ' - 类型: ' + file.type   + ' - 创建日期: ' + file.creationdate   + ' - 修改日期: ' + file.modificationdate   + ' - 文件状态: ' + file.filestatus ); } onUploadSuccess : function(file,data,response) {//上传完成时触发(每个文件触发一次)   alert( 'id: ' + file.id   + ' - 索引: ' + file.index   + ' - 文件名: ' + file.name   + ' - 文件大小: ' + file.size   + ' - 类型: ' + file.type   + ' - 创建日期: ' + file.creationdate   + ' - 修改日期: ' + file.modificationdate   + ' - 文件状态: ' + file.filestatus   + ' - 服务器端消息: ' + data   + ' - 是否上传成功: ' + response); }
好的,以下是一个简单的示例代码可以实现使用jsp和websocket上传图片并显示: 1. 服务端代码 ```java @ServerEndpoint(value = "/upload") public class FileUploadServer { @OnMessage public void onMessage(Session session, byte[] image) { try { // 将图片保存到服务器 String fileName = UUID.randomUUID().toString() + ".jpg"; FileOutputStream fos = new FileOutputStream("D:\\upload\\" + fileName); fos.write(image); fos.close(); // 将图片路径返回给客户端 session.getBasicRemote().sendText("/upload/" + fileName); } catch (IOException e) { e.printStackTrace(); } } } ``` 2. jsp页面代码 ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>WebSocket上传图片并显示</title> <script type="text/javascript"> var ws = null; function connect() { ws = new WebSocket("ws://localhost:8080/upload"); ws.binaryType = "arraybuffer"; ws.onopen = function() { console.log("连接成功!"); }; ws.onmessage = function(event) { var img = document.createElement("img"); img.src = event.data; document.getElementById("imageContainer").appendChild(img); }; ws.onclose = function() { console.log("连接关闭!"); }; ws.onerror = function() { console.log("连接出错!"); }; } function disconnect() { ws.close(); console.log("断开连接!"); } function upload() { var file = document.getElementById("file").files[0]; var reader = new FileReader(); reader.readAsArrayBuffer(file); reader.onload = function() { var imageBytes = new Uint8Array(reader.result); ws.send(imageBytes); }; } </script> </head> <body onload="connect();"> <input type="file" id="file" /><br /> <button onclick="upload();">上传</button> <div id="imageContainer"></div> <button onclick="disconnect();">断开连接</button> </body> </html> ``` 在这个示例中,我们使用了Java EE 7中的WebSocket API,通过@ServerEndpoint注解创建了一个WebSocket服务器端,用于接收客户端上传的图片。在onMessage方法中,我们将图片保存到服务器,并将图片路径返回给客户端。 在客户端,我们使用JavaScript创建了一个WebSocket对象,并通过binaryType属性指定了发送和接收的数据类型为二进制数据。当用户选择了要上传的图片时,我们使用FileReader对象将图片读取为二进制数据,并发送到服务端。服务端返回的图片路径将通过onmessage事件处理函数接收,并在页面上显示出来。 注意:在实际应用中,我们需要对上传的图片进行安全验证和文件大小限制,以防止恶意攻击和服务器资源浪费。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值