bootstrap_fileinput上传文件 后台接受额外的参数

如果是你,你会怎样做

我们何尝不是茫茫人海中的一员,迷茫着,追求着

天天敲着java代码能怎样,明天如何

不要问明天会怎样,明天怎样都是你今天和明天的选择

好啦,不扯了,大家如果想听我扯,可以访问我的网站www.read8686.com

html代码:

<input type="file" id="upload1" name="myFileName" multiple />

js代码:

$(function() {
	var cliengguid=null;
	$("#upload1").fileinput({
		language : 'zh', // 设置语言
		uploadUrl : getProjectURL() + 'image/uploadimg', // 上传的地址
		allowedFileExtensions : [ 'jpg', 'png' ],// 接收的文件后缀
		showUpload : true, // 是否显示上传按钮
		showCaption : false,
		maxFileCount : 4,
		uploadExtraData : function() {// 向后台传递参数
			var data = {
				cliengguid : cliengguid
			};
			return data;
		}
	// 是否显示标题
	}).on('fileuploaded', function(event, data) {
		console.log(data);
	}).on('fileerror',function(event,data){
		console.log("上传失败")
	}).on('filebatchselected',function(){
		cliengguid=uuid();
	})
});

后台java代码:

@RequestMapping("/uploadimg")
	public void uploadImg(@RequestParam(value = "myFileName", required = false) MultipartFile cardFile,
			HttpServletRequest request, HttpServletResponse response) {

		String cliengguid = request.getParameter("cliengguid");
		JSONObject jsonRtn = new JSONObject();
		JSONArray arr = new JSONArray();

		PrintWriter out = null;
		try {
			out = response.getWriter();
		} catch (IOException e1) {
			e1.printStackTrace();
		}
		try {
			if (cardFile != null) {
				String oldname = cardFile.getOriginalFilename();
				String filetype = oldname.substring(oldname.lastIndexOf("."));
				SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
				String newFileName = sdf.format(new Date()) + "pic" + filetype;
				String realPath = PropertiesUtil.getValue("FILEPATH", "fileconfig.properties");
				File targetFile = new File(realPath, newFileName);
				if (!targetFile.getParentFile().exists()) {
					targetFile.getParentFile().mkdirs();
				}
				BufferedOutputStream out1 = new BufferedOutputStream(new FileOutputStream(targetFile));
				out1.write(cardFile.getBytes());
				out1.flush();
				out1.close();
				String ipconfigstr = PropertiesUtil.getValue("IPCONFIG", "fileconfig.properties");
				String imgUrl = "http://" + ipconfigstr + "/upload/" + newFileName;
				FileInfo fileinfo = new FileInfo();
				fileinfo.setRowguid(UUID.randomUUID().toString());
				fileinfo.setFilesize(request.getContentLength());
				fileinfo.setAddtime(new Date());
				fileinfo.setCliengguid(cliengguid);
				fileinfo.setFilepath(targetFile.getAbsolutePath().replace("\\", "&&"));
				fileinfo.setFileurl(imgUrl);
				fileService.addFileInfo(fileinfo);
				arr.add(imgUrl);

				jsonRtn.put("errno", 0);
				jsonRtn.put("data", arr);
				response.setContentType("text/text;charset=utf-8");
				out.print(jsonRtn.toString());
			}
		} catch (Exception e) {
			e.printStackTrace();
			jsonRtn.put("errno", 1);
			jsonRtn.put("data", e.getMessage());
			response.setContentType("text/text;charset=utf-8");
			out.print(jsonRtn.toString());
		} finally {
			out.flush();
			out.close();
		}
	}

注意点:这个地方我们使用接受文件的方法是MartiFile,为什么不用request,如果不用MultipartFile 将文件和参数分离出来,这边是无法获取到对应的 request.getParameter("cliengguid");

迷茫很久

希望对你有所帮助

发布了356 篇原创文章 · 获赞 147 · 访问量 76万+

猜你喜欢

转载自blog.csdn.net/datouniao1/article/details/100778627