Jquery+uploadify异步上传图片

新学习了Jquery的uploadify插件,异步上传图片,功能还是非常强大的。


这里说一下使用步骤,后台是servlet接收的。

引入包

jsp中引进

<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/js/uploadify.css">
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath }/js/jquery.uploadify.min.js"></script>


servlet中引入两个jar包

commons-fileupload-1.3.1.jar
commons-io-2.2.jar


jsp中代码如下

<script type="text/javascript">
$(function () {  
    $("#uploadPic").uploadify({  
       // 'debug'          : true, //开启调试  
        'auto'           : true, //是否自动上传     
        'swf'            : '<%=request.getContextPath()%>/js/uploadify.swf?var='+(new Date()).getTime(),      
        'uploader'       : '<%=request.getContextPath()%>/upload',     
        'queueID'        : 'fileQueue',//队列id,用来展示上传进度的    
        'width'          : '75',  //按钮宽度    
        'height'         : '24',  //按钮高度  
        'queueSizeLimit' : 1,  //同时上传文件的个数    
        'fileTypeDesc'   : '视频文件',    //可选择文件类型说明  
        'fileTypeExts'   : '*.png; *.jpg; *.jpeg; *.gif', //控制可上传文件的扩展名    
        'multi'          : true,  //允许多文件上传    
        'buttonText'     : '选择图片',//按钮上的文字    
        'fileSizeLimit'  : '2MB', //设置单个文件大小限制     
        'fileObjName'    : 'pic',  //<input type="file"/>的name    
        'method'         : 'post',    
        'removeCompleted' : true,//上传完成后自动删除队列    
        'onFallback'    :function(){      
            alert("您未安装FLASH控件,无法上传图片!请安装FLASH控件后再试。");      
        },   
        'onUploadSuccess' : function(file, data, response){//单个文件上传成功触发    
          
             $("#showImgId").attr('src', data);
             $("#pic_id").val(data);//data就是action中返回来的数据    
        },'onQueueComplete' : function(){//所有文件上传完成    
           // alert("文件上传成功!");  
          }    
        });
}); 
</script>
</head>

<body>
	<form action="${pageContext.request.contextPath }/test" method="post">
		<div id="upload_pic111">
        	<input type="file" id="uploadPic" name="pic">    
            <div id="fileQueue"></div>   
            <img  src="" id = "showImgId" style="width:200px;height:100px;" >
        </div>
			<input type="hidden" id="pic_id" name="pic" value="">
			</br>
			<input type="submit" value="提交">
	</form>
</body>

servlet后台代码如下

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8"); 
		response.setContentType("text/html;charset=utf-8"); 
		//为解析类提供配置信息 
		DiskFileItemFactory factory = new DiskFileItemFactory(); 
		//创建解析类的实例 
		ServletFileUpload fileUpload = new ServletFileUpload(factory);
		List<FileItem> fileItem = null;
		try {
			fileItem = fileUpload.parseRequest(request);
		} catch (Exception e) {
			e.printStackTrace();
		}
		//解析
		Iterator<FileItem> iterator = fileItem.iterator();
		String picName = null;
		while(iterator.hasNext()){
			FileItem item = iterator.next();
			if(!item.isFormField()){//不是表单域
				//获取文件name    'fileObjName': 'pic',
				String name = item.getFieldName();
				//获取图片名
				picName = item.getName();
				String type = item.getContentType();
				File file = new File("D:/upload/" + picName);
				try {
					item.write(file);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		}
		response.getWriter().print("/" + picName);
	}

ok了 , 还是非常简单的。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值