#のHTML + jsのアップロード複数の画像、ページがサーバパースに画像、背景画像やアップロードをエコー

1.htmlページ

一度に複数のファイルをアップロードすることができ、入力タグにこの属性を追加1
ここに画像を挿入説明

前記画像を複数選択してCtrlキーを押しながらキーを
ここに画像を挿入説明
示す効果:
ここに画像を挿入説明
上記の数値は、5つの選択されたファイル、およびページのエコーを表示し、コードがエコーそれ以下JS

2.jsページのエコー画像+複数ファイルのアップロード

入力エリアのdivボックス内の画像は、以下に定義1.表示し、メソッドのonchange入力内側のラベルに書き込み、私はVUEのフレームワークを使用しているため、書き込みが@changeがあるので:

あなたはすべてを置くことができるように2.どのようにコードを書くためにトラバーサル画像が表示されます

setImagePreview:function(){
            //补充说明:因为我们给input标签设置multiple属性,因此一次可以上传多个文件
            //获取选择图片的个数
			var dom = document.getElementById("img");
			var files = dom.files;
            var length = files.length;
            var imgObjPreview = document.getElementById("localImag");
            //3、回显
            imgObjPreview.innerHTML = "";
        	$.each(files,function(key,value){
                //每次都只会遍历一个图片数据
                var img = document.createElement("img");
                var imgObjPreview = document.getElementById("localImag");
                var fr = new FileReader();
                fr.onload = function(){
                    img.src=this.result;
                    img.style.width="50px";
                    img.style.height="70px";
                    img.style.marginRight="10px";
                    img.style.marginTop="10px";
                    img.id=key+"img";
                    imgObjPreview.appendChild(img);
                }
                fr.readAsDataURL(value);//读取文件
        	})
        }

3.複数ファイルのアップロード
ここでは、書き込みファイルのタグIDを
ここに画像を挿入説明

 $.ajaxFileUpload({
		                url: '../../br/detial/problem/upload',
		                type: 'post',
		                fileElementId: ['img'],
		                data: {checkReportId: checkReportId, componentName: componentName,problemDesc:problemDesc,
		                	   badNumber:badNumber,badPosition:badPosition,fixMeasures:fixMeasures,xgps:xgps,ygps:ygps,
		                	   problemLevel:problemLevel,isSign:isSign}, 
		                dataType: 'json',
		                success: function (data, status) {
		                	dialogMsg('添加成功!');
		                	dialogClose();
		                    if(data.code=='0'){
		                        dialogMsg(data.msg, 'success');
		                    }else{
		                        dialogMsg(data.msg, 'error');
		                    }
		                },
		                error: function (data, status, e) {
		                    dialogMsg(e, 'error')
		                }
		            });

ajaxfileupload.jsを紹介するこの$ .ajaxFileUploadの必要性

背景レセプション

ここに画像を挿入説明
コードは以下の通りであります:

public R uploadTemplateCover(HttpServletRequest request) throws IOException{
		 CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
	     R r=null;
	     if (multipartResolver.isMultipart(request)) {//参数是否包含文件
	    	 String checkReportId =request.getParameter("checkReportId");
	    	 String componentName =request.getParameter("componentName");
	    	 String problemDesc =request.getParameter("problemDesc");
	    	 String badNumber =request.getParameter("badNumber");
	    	 String badPosition =request.getParameter("badPosition");
	    	 String fixMeasures =request.getParameter("fixMeasures");
	    	 String xgps =request.getParameter("xgps");
	    	 String ygps =request.getParameter("ygps");
	    	 String problemLevel =request.getParameter("problemLevel");
	    	 String isSign =request.getParameter("isSign");
	    	 //新建对象
	    	 BrDetialProblemEntity b=new BrDetialProblemEntity();
	    	 b.setCheckReportId(checkReportId);
	    	 b.setComponentName(componentName);
	    	 b.setProblemDesc(problemDesc);
	    	 b.setBadNumber(badNumber);
	    	 b.setBadPosition(badPosition);
	    	 b.setFixMeasures(fixMeasures);
	    	 b.setXgps(xgps);
	    	 b.setYgps(ygps);
	    	 b.setProblemLevel(problemLevel);
	    	 b.setIsSign(isSign);
	    	 //将每一个图片上传至服务器
	    	 String imgUrlStr="";
	    		//上传图片
		    	 MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
		        //上传路段图标文件到服务器
		        /*MultipartFile multipartFileImg = multiRequest.getFile("img");*/
		        List<MultipartFile> multipartFileImg=multiRequest.getFiles("img");
		        if(multipartFileImg!=null){
		        	for(int i=0;i<multipartFileImg.size();i++) {
		        		//获取文件原始名
						String fileName = multipartFileImg.get(i).getOriginalFilename();
						//获取文件后缀名
						String fileType = fileName.substring(fileName.lastIndexOf("."));
						//获取输入流
						InputStream ins = multipartFileImg.get(i).getInputStream();
						//文件保存目录
				      	String filePath=request.getSession().getServletContext().getRealPath("/").replaceAll("\\\\", "/")+"\\detialProblemImg\\";
				      	File fi=new File(filePath);
				      	//如果文件夹不存在则创建
				      	if(!fi.exists()){
				      		fi.mkdirs();
				      	}
						FileOutputStream out = new FileOutputStream(filePath+componentName+"problem"+(i+1)+fileType);
						int read = 0;
						byte[] buffer = new byte[4096];
						while ((read = ins.read(buffer)) != -1) {
							out.write(buffer, 0, read); // 保存文件数据
						}
						out.flush();
						out.close();
						ins.close();
						imgUrlStr+=componentName+"问题"+i+fileType+",";
		        	}
		        	
		        }
	    	 //将问题图片url集合存入数据库
	    	 b.setImageUrl(imgUrlStr.substring(0,imgUrlStr.length()-1));  
	    	 r=brDetialProblemService.saveBrDetialProblem(b);
	     }
	     return r;
	}
リリース9件のオリジナルの記事 ウォンの賞賛4 ビュー3146

おすすめ

転載: blog.csdn.net/weixin_43642706/article/details/89099742
おすすめ