springboot中TXT,Excel文件上传服务器、读取

springboot中TXT,Excel文件上传服务器、读取


一、首先设置form表单的enctype属性enctype=“multipart/form-data”,代表的是可以上传文件类型;

<form action="upload" method="post" enctype="multipart/form-data" hidden="hidden" id="textform">
文件:<input type="file" name="file">
<input type="submit" value="提交">
</form>

二、TXT文件的上传与读取
controller层

public void upfile(MultipartFile file, HttpServletRequest req) {
//创建文件存放位置的路径,路径可以自定义
String path = req.getServletContext().getRealPath("/wenjian");
//根据创建的路径,生成存放的文件。
File file1=new File(path);
//此文件夹会生成与src/main/webapp中。
file1.mkdirs();
//生成存放的文件夹之后,再创建上传的文件的名字。名字可以自定义。getOriginalFilename()得到文  //件上传的原始名字。UUID.randomUUID()生成一个随机的ID。
String filena = file.getOriginalFilename();
String filename = UUID.randomUUID().toString()+filena;
生成最后一级的文件
File files = new File( file1+"/"+filename);
将上传的文件上传;
file.transferTo(files);
//    			正则表达式  将字符串中的\全部改成/
    			files3 = files3.replaceAll("\\\\", "/");
    				try {
    				File file5=new File(files3);
//                 springboot中改变编码格式 !!!!!!!!!!!!!!!!!!
                    BufferedReader read=new BufferedReader(new InputStreamReader(new   FileInputStream(file5),"GBK"));                    
   					Stream<String> line = read.lines();
    			    	Iterator<String> it=line.iterator();
    					while(it.hasNext()) {
   						String next = it.next();   						
  					    ser.path(files3,next);
					    
					}
    				} catch (FileNotFoundException e) {
  					// TODO Auto-generated catch block
    					e.printStackTrace();
    				}
    	}

二、Excel文件的上传与读取

public void upfile(MultipartFile file, HttpServletRequest req) {
//创建文件存放位置的路径,路径可以自定义
String path = req.getServletContext().getRealPath("/wenjian");
//根据创建的路径,生成存放的文件。
File file1=new File(path);
//此文件夹会生成与src/main/webapp中。
file1.mkdirs();
//生成存放的文件夹之后,再创建上传的文件的名字。名字可以自定义。getOriginalFilename()得到文  //件上传的原始名字。UUID.randomUUID()生成一个随机的ID。
String filena = file.getOriginalFilename();
String filename = UUID.randomUUID().toString()+filena;
生成最后一级的文件
File files = new File( file1+"/"+filename);
将上传的文件上传;
file.transferTo(files);
//    			正则表达式  将字符串中的\全部改成/
    			files3 = files3.replaceAll("\\\\", "/");
    			try {
    		            // 创建输入流,读取Excel
    		            InputStream is = new FileInputStream(files3);
    		            // jxl提供的Workbook类
    		            Workbook wb = Workbook.getWorkbook(is);
    		            
    		            List<List> outerList=new ArrayList<List>();
    		         // 得到Excel中一共多少页
    		            int sheet_size = wb.getNumberOfSheets();
    		            for (int index = 0; index < sheet_size; index++) {    		                
    		                // 每一张页就是一个Sheet对象
    		                Sheet sheet = wb.getSheet(index);
    		                // sheet.getRows()返回该页的总行数
    		                for (int i = 0; i < sheet.getRows(); i++) {
    		                    List innerList=new ArrayList();
    		                    // sheet.getColumns()返回该页的总列数
    		                    for (int j = 0; j < sheet.getColumns(); j++) {
    		                    //这一步就是读取的excel文件的内容。
    		                        String cellinfo = sheet.getCell(j, i).getContents();
    		                        if(cellinfo.isEmpty()){
    		                            continue;
    		                        }
    		                        innerList.add(cellinfo);
    		                        System.out.print(cellinfo);
    		                    }
    		                    outerList.add(i, innerList);
//    		                    System.out.println(outerList);
    		                }
    		                
    		            }
    		        } catch (FileNotFoundException e) {
    		            e.printStackTrace();
    		        } catch (BiffException e) {
    		            e.printStackTrace();
    		        } catch (IOException e) {
    		            e.printStackTrace();
    		        }
    		       
    		    }
    				
    		
		} catch (Exception e) {
			// TODO: handle exception
			
		}
	
		}
		}

在这里插入图片描述
在main目录下自定义创建一个webAPP文件夹 上传的文件就存放在这里

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值