文件上传以及导入二进制到数据库程序心得

来源:互联网 发布:怎么用服务器ip做域名 编辑:程序博客网 时间:2024/06/06 13:22

2013-12-26 08:49:22 frank
写文件上传以及导入到数据库程序心得
----------------------------------

项目采用的框架是:
 Spring MVC


上传功能的实现:

 step1,在配置文件中加上下面的配置

<bean id="multipartResolver"  class="org.springframework.web.multipart.commons.CommonsMultipartResolver">    <property name='maxUploadSize'><!--限制最大文件是10M-->        <value>100010485761</value>    </property> </bean>


 step2,在请求处理方法里通过

// 将request转换成MultipartHttpServletRequestMultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartFile mfile = multipartRequest.getFile("file"); // 获得文件InputStream input = mfile.getInputStream(); // 获得输入流


 step3,通过流将文件重新写出来

// 存放文件的目录File dir = new File(proPath + "/WEB-INF/madecarddata");if (dir.exists()) {dir.mkdir();}// 生成文件的路径File file = new File(dir + "/" + filename);System.out.println(file.getName());FileOutputStream fos;try {fos = new FileOutputStream(file);byte[] bbs = new byte[1024];int len = -1;while ((len = in.read(bbs)) != -1) {fos.write(bbs, 0, len);}in.close();fos.close();return true;} catch (FileNotFoundException e) {e.printStackTrace();System.out.println("生成文件失败");return false;} catch (IOException e) {e.printStackTrace();System.out.println("生成文件失败");return false;}


解析文件时遇到的问题 :

//1.乱码问题  String encoding = "GBK";  InputStreamReader read = new InputStreamReader(new FileInputStream(file), encoding);// 考虑到编码格式    //或者  str = bufferedReader.readLine();  st = new String(str.getBytes(),"GBK");
 //2.上传二进制文件到数据库//首先要关闭自动提交session.connection().setAutoCommit(false);//在return前手动提交session.connection().commit();


0 0
原创粉丝点击