JQueryファイルアップロードプラグインplupload使用概要

4292 ワード

	//JQuery        plupload     
	//html      ,        plupload      div     js  
	<div id="uploader" class="modal hide" role="dialog"
		aria-labelledby="uploaderLabel"></div>
	<a id="uploaderBtn" class="btn" href="#uploader" data-toggle="modal">    </a>
	<script type="text/javascript" src="${ctx}/static/plupload-2.0.0/js/plupload.full.min.js"></script>
	<script type="text/javascript" src="${ctx}/static/plupload-2.0.0/js/jquery.plupload.queue/jquery.plupload.queue.min.js"></script>
	<script type="text/javascript" src="${ctx}/static/plupload-2.0.0/js/i18n/zh_CN.js"></script>
	<script type="text/javascript">
		//plupload       ,  jquery  。
		//      :http://plupload.com/
		//plupload.full.min.js        plupload-2.0.0/js/plupload.dev.js
		//plupload error     plupload.dev.js ,
		//               plupload-2.0.0/js/jquery.ui.plupload/jquery.ui.plupload.js 
		$(function() {
			$("#uploader").bind('show',function(){
				$('#uploader').pluploadQueue({
					url : '${ctx}/upload/file',
					multipart_params:{dataType:'install'},
					max_file_size : '10mb',
					filters : [
						{title : "Excel files", extensions : "xls,xlsx"}
					],
					rename: false,
					multiple_queues:true,
					prevent_duplicates:true,
					flash_swf_url : '${ctx}/static/plupload-2.0.0/js/Moxie.swf',
					silverlight_xap_url : '${ctx}/static/plupload-2.0.0/js/Moxie.xap',
					init:{
						Error: function(up, err) {
							//            error        ,
							//            plupload   -200 http  ,
							//     ==-200  。     ,         。
							if(err.code==-200){
								alert("      ,        !");
							}
							if(err.code==-602){
								alert("     !");
							}
						},
					}
				});
			});
		}); 
	//plupload                 ,   plupload.dev.js 
					function handleError() {
					if (retries-- > 0) {
						delay(uploadNextChunk, 1);
					} else {
						file.loaded = offset; // reset all progress

						up.trigger('Error', {
							code : plupload.HTTP_ERROR,
							message : plupload.translate('HTTP Error.'),
							file : file,
							response : xhr.responseText,
							status : xhr.status,
							responseHeaders: xhr.getAllResponseHeaders()
						});
					}
				}

	//            ,                  ,  plupload error         
	//      spring MVC ,    :
	@RequestMapping(value = "file", method = RequestMethod.POST)
	public @ResponseBody
	String uploadFile(@RequestParam("file") MultipartFile file,
			@RequestParam("dataType") String dataType,
			HttpServletResponse response ) {
		UploadFile entity = new UploadFile(file.getOriginalFilename(), dataType);
		
		if ("install".equals(dataType)) {
			//             ,      boolean  
			boolean bl =excelReadAndSave(file);
			//fileUploadInfoExcelRead(file);
			if(bl){
				uploadFileSerivce.save(entity);
			}else{
				//String str="die('{'jsonrpc':'2.0','error':{'code':501,'message':'Failed to open output stream.'},'id':'id'}')";
				//        ,      
				//        header    ,1300     ,plupload         ,
				//         ,    200      
				response.setStatus(1300);
				return "{'error', 4}";
			}
		} else {
			boolean bool =fileUploadInfoExcelRead(file);
			if(bool){
				uploadFileSerivce.save(entity);
			}else{
				response.setStatus(1300);
				return "{'error', 4}";
			}
		}

		return "{'success', 'true'}";
	}