MUI多文件上传,使用uploader上传多个文件,Java、SSM做后台

MUI使用plus.uploader.createUpload同时上传多个文件

用从相册选择多个图片上传举例

MUI代码

mui.plusReady(function() {
	var files = [];//用来保存需要上传的文件信息
	/**
	*打开相册选择图片
	*/
	plus.gallery.pick(function(e) {
		mui.each(e.files, function(num, item) {
			files.push(item);//把图片路径保存到数组中
		});
	}, function(a) {}, {
		filter: "image",
		multiple: true,
		maximum: 9,//最多选择图片数量
		system: false,
		onmaxed: function() {
			mui.toast('最多只能选择9张图片');
		}
	});

	var wt = plus.nativeUI.showWaiting();//等待动画
	//创建一个上传任务,url填自己写的后端接口地址
	var task = plus.uploader.createUpload(url, {
			method: "POST",
			priority: 100,
		},
		function(t, status) {
			wt.close();//上传结束关闭动画
		}
	);
	//遍历文件数组,将所有文件添加到上传队列
	mui.each(files, function(num, item) {
		task.addFile(item.path, {
				key: "file" + num,//这里的key一定不能重复
		});
	});
	//其他的参数,有需要可以添加
	//task.addData("test", "test");
	//启动上传任务
	task.start();
});

后端用Spring框架实现——Java代码

	@RequestMapping(value = "/uploadFiles", method = RequestMethod.POST)
	@ResponseBody
	public boolean uploadFile(HttpServletRequest request) throws IOException {
		boolean flag = false;
		MultipartHttpServletRequest mReq = (MultipartHttpServletRequest) request;
		//获取文件的id---对应MUI上传时addFile时里面的Key
		Iterator<String> files = mReq.getFileNames();
		MultipartFile file = null;
		OutputStream outStream = null;
		//文件存储路径
		String path = "C:\\images";
		//遍历迭代器,将文件写入到服务器的磁盘
		while(files.hasNext()) {
			try {
				//获取文件id对应的文件
				file = mReq.getFile(files.next());
				byte[] bytes = file.getBytes();
				//获取文件名,这里获取到的是文件上传上来时 的名字
				String oldName = file.getOriginalFilename();
				File f = new File(path);
				if(!f.exists()) {
					f.mkdirs();
				}
				//开始写入磁盘
				File targetFile = new File(path + "\\" + oldName);
				outStream = new FileOutputStream(targetFile);
				outStream.write(bytes);
			}catch(Exception e) {
				flag = false;
				e.printStackTrace();
			}
		}
		flag = true;
		outStream.close();
		return flag;
	}

版权声明:本文为qq_36155003原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。