项目的开发环境是ssm,使用之前保证jar包到位,相关xml文件中配置到位。
准备环境:
1. pom.xml文件中导入相关依赖。
<!-- 上传组件包 Start --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.9</version> </dependency> <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <version>3.0</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.1</version> </dependency> <!-- 上传组件包 End -->
2. 关于springmvc的配置文件中配置,
<!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 默认编码 --> <property name="defaultEncoding" value="utf-8" /> <!-- 文件大小最大值 --> <property name="maxUploadSize" value="10485760000" /> <!-- 内存中的最大值 --> <property name="maxInMemorySize" value="40960" /> </bean>
Util包中有关上传部分:
public class PhotoUpload { //photo即为上传的图片的name值(前端中的name属性的值) public static String upLoad(MultipartFile photo,HttpServletRequest req){ String fileName = photo.getOriginalFilename();//上传的文件名 SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd"); //找到上传文件要放的路径,写到里面去 //src取不到数据 File dir = new File(req.getSession().getServletContext().getRealPath("/")); //photostorage是存储地址 String photostorage = dir+File.separator+"upload"+File.separator+sdf.format(new Date())+fileName; String photopath = "../upload/"+sdf.format(new Date())+fileName; FileOutputStream fos = null; try { System.out.println("try"); fos = new FileOutputStream(photostorage); fos.write(photo.getBytes());//按字节方式写进去 fos.flush(); System.out.println("try-end"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ try { fos.close(); } catch (IOException e) { e.printStackTrace(); } } System.out.println(photostorage); System.out.println(photopath); return photopath; } }