springMVc.xml 中配置
<context:component-scan base-package="com.spring.mvc" /> <!--开启注解的配置--> <mvc:annotation-driven></mvc:annotation-driven> <!--进行配置视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!--前缀,页面从什么地方开始获取--> <property name="prefix" value="/"></property> <!--后缀,页面.结合名称--> <property name="suffix" value=".jsp"></property> </bean> <mvc:default-servlet-handler/> <!--文件的配置-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!--配置字符集--> <property name="defaultEncoding" value="utf-8"></property> <!--一次上传总大小 的文件--> <property name="maxUploadSize" value="987659994"></property> <!--每个文件的大小--> <property name="maxUploadSizePerFile" value="#{1024*1024}"></property> <!--设置阀值 --> <property name="maxInMemorySize" value="#{1024*1024*2}"></property> </bean>
controller 层代码 业务逻辑
@Controller
public class TestController {
@RequestMapping("/getUpload") @ResponseBody public String[] getUpload(@RequestParam("file")MultipartFile file, HttpServletRequest request ) throws IOException { //定义文件文件名 String fileName=""; //1.获取原生文件名称 String uploadFilename = file.getOriginalFilename(); //2.进行获取文件名称后缀 //XX.XX.jsp String extendName=uploadFilename.substring (uploadFilename.lastIndexOf(".")-1,uploadFilename.length()); //进行判断 //是否值jpg,png,jpeg //3.防止图片名称相同 String uuid= UUID.randomUUID().toString().replace("-","").toUpperCase(); //文件的名称 fileName=uuid+extendName;//新文件名称 System.out.println("文件的名称:"+fileName); //4.获取文件路径地址 ServletContext servletContext = request.getServletContext(); String uploads = servletContext.getRealPath("/uploads"); System.out.println("文件存放的路径:" + uploads); //处理文件比较多 String format = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); File file1 = new File(uploads + "/" + format); if(!file1.exists()){ System.out.println("--------------------"); file1.mkdirs(); } //5.进行将文件写到对应位置 file.transferTo(new File(file1,fileName)); return new String[]{"uploads/"+format+"/"+fileName}; }
}