使用elementUI实现将图片上传到本地的示例


Posted in Javascript onSeptember 04, 2018

查阅饿了吗官方文档可以了解上传组件的使用方法。http://element.eleme.io/#/zh-CN/component/upload

前台的页面代码为:

<el-upload
        class="upload-demo"
        ref="upload"
        action="http://127.0.0.1:20001/Administration/MediaApiLhUploadHandler"
        :on-preview="handlePreview"
        :on-remove="handleRemove"
        :file-list="fileList"
        :auto-upload="false"
       >
        <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
        <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button>
       </el-upload>

具体的绑定method的方法见官方文档

上传到本地,需要在后台建立一个接口进行接收,接口代码如下:

@Override
	public void handle(List<FileItem> fileItemList, NetUpMediaapiImgUpload up, NetDownMediaapiImgUpload down, HttpServletResponse response) {
		System.out.println("path:"+getBasePath());
		if (!CommUtil.isEmpityList(fileItemList)) {
			List<String> paths=new ArrayList();
			for (FileItem fileItem : fileItemList) {
				String path = writeFile(fileItem);
				paths.add("../../static/img/"+fileItem.getName());//浏览器不允许使用绝对路径
				logger.info("上传成功:" + path);
				logger.info("更新数据");
			}
			down.setAllPath(paths);
 
		}
	}
 
	public static String writeFile(FileItem file){
		String fileName = getFileName(file.getName());
		fileName = formatFileName(fileName);
		fileName = getFilePrefix(fileName)+'.'+getFileSuffix(fileName);
		String path = getBasePath()+"/xmob-web/static/img/";
		//path="E:\\xmob\\trunk\\xmob-web\\static\\img\\";//图片应该放在WEB文件夹的static目录下
		File desFile = new File(path);
		if (!desFile .exists() && !desFile .isDirectory()) {
			System.out.println("//不存在");
			desFile .mkdir();
		}
		String result = null;
		try {
			InputStream in = file.getInputStream();
			FileOutputStream out = new FileOutputStream(path+"/"+fileName);
			//创建一个缓冲区
			byte buffer[] = new byte[1024];
			//判断输入流中的数据是否已经读完的标识
			int len = 0;
			//循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据
			while((len=in.read(buffer))>0){
				//使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(path)当中
				out.write(buffer, 0, len);
			}
			in.close();
			out.close();
			//删除处理文件上传时生成的临时文件
			file.delete();
			result = path+"/"+fileName;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}
	/**
	 * 获取资源路径
	 * @return
	 */
	private static String getBasePath(){
		String template_dir = System.getProperty("user.dir");
		return template_dir.substring(0,template_dir.lastIndexOf(File.separator));
	}
 
	/**
	 * 注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如: c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt
	 * 处理获取到的上传文件的文件名的路径部分,只保留文件名部分
	 * @param fileName
	 * @return
	 */
	private static String getFileName(String fileName){
		fileName = fileName.substring(fileName.lastIndexOf(File.separator)+1);
		return fileName;
	}
	/**
	 * 格式化文件名
	 * @param fileName
	 * @return
	 */
	private static String formatFileName(String fileName){
		String[] sArr = fileName.split("\\.");
		String str = sArr[0];
		str = str.replaceAll(" ", "");
		str = str.replaceAll("\\s+|_", "-");
		String result = str+"."+sArr[1];
		return result;
	}
 
	/**
	 * 获得文件名前缀
	 */
	private static String getFilePrefix(String fileName){
		fileName = formatFileName(fileName);
		String[] sArr = fileName.split("\\.");
		return sArr[0];
	}
 
	/**
	 * 获得文件名后缀
	 */
	private static String getFileSuffix(String fileName){
		fileName = formatFileName(fileName);
		String[] sArr = fileName.split("\\.");
		return sArr[1];
	}

以上这篇使用elementUI实现将图片上传到本地的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
IE中直接运行显示当前网页中的图片 推荐
Aug 31 Javascript
JavaScript中的Window窗口对象
Jan 16 Javascript
js 图片轮播(5张图片)
Dec 30 Javascript
firefo xml 读写实现js代码
Jun 11 Javascript
jQuery 1.3 和 Validation 验证插件1.5.1
Jul 09 Javascript
JavaScript闭包函数访问外部变量的方法
Aug 27 Javascript
javascript中checkbox使用方法简单实例演示
Nov 17 Javascript
EasyUi中的Combogrid 实现分页和动态搜索远程数据
Apr 01 Javascript
AngularJs bootstrap搭载前台框架——基础页面
Sep 01 Javascript
JavaScript仿微博输入框效果(案例分析)
Dec 06 Javascript
js实现华丽的九九乘法表效果
Mar 29 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
Mar 22 Javascript
element UI upload组件上传附件格式限制方法
Sep 04 #Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
Sep 04 #Javascript
webpack 3.X学习之多页面打包的方法
Sep 04 #Javascript
JS获取并处理php数组的方法实例分析
Sep 04 #Javascript
vue click.stop阻止点击事件继续传播的方法
Sep 04 #Javascript
vue form 表单提交后刷新页面的方法
Sep 04 #Javascript
原生JS实现动态加载js文件并在加载成功后执行回调函数的方法
Dec 30 #Javascript
You might like
合作指挥官:孟斯克
2020/03/16 星际争霸
PHP Ajax实现页面无刷新发表评论
2007/01/02 PHP
php GeoIP的使用教程
2011/03/09 PHP
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
2014/05/04 PHP
AES加解密在php接口请求过程中的应用示例
2016/10/26 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
2019/04/10 PHP
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
2009/12/02 Javascript
初学js 新节点的创建 删除 的步骤
2011/07/04 Javascript
JS刷新框架外页面七种实现代码
2013/02/18 Javascript
JS实现黑色大气的二级导航菜单效果
2015/09/18 Javascript
js实现文本框输入文字个数限制代码
2015/12/25 Javascript
基于AngularJS实现iOS8自带的计算器
2016/09/12 Javascript
laypage+SpringMVC实现后端分页
2019/07/27 Javascript
关于JSON解析的实现过程解析
2019/10/08 Javascript
夯基础之手撕javascript继承详解
2020/11/09 Javascript
python对数组进行反转的方法
2015/05/20 Python
Python类的动态修改的实例方法
2017/03/24 Python
python分块读取大数据,避免内存不足的方法
2018/12/10 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
2020/04/20 Python
基于python实现检索标记敏感词并输出
2020/05/07 Python
解决Keras 自定义层时遇到版本的问题
2020/06/16 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
Python使用grequests并发发送请求的示例
2020/11/05 Python
英国剑桥包官网:The Cambridge Satchel Company
2016/08/01 全球购物
挪威太阳镜和眼镜网上商城:SmartBuyGlasses挪威
2016/08/20 全球购物
德国机场停车位比较和预订网站:Ich-parke-billiger
2018/01/08 全球购物
HelloFresh澳大利亚:订购你的美味食品盒、健康餐食
2018/03/28 全球购物
联想法国官方网站:Lenovo法国
2018/10/18 全球购物
视图的作用
2014/12/19 面试题
大一期末自我鉴定
2013/12/13 职场文书
小区门卫工作职责
2013/12/14 职场文书
医疗纠纷协议书
2014/04/16 职场文书
团日活动总结怎么写
2014/06/25 职场文书
公司领导班子群众路线四风问题对照检查材料
2014/10/02 职场文书
《追风筝的人》:人心中的成见是座大山,但请不忘初心
2019/11/15 职场文书