121
问题: #7.2.1-4 | 与StandardServletMultipartResolver有所不同,CommonsMultipart-Resolver会不会强制要求设置临时文件路径
回答: 不会
122
问题: #7.2.1-5 | 如下的配置就等价于我们在前文通过MultipartConfigElement所配置的StandardServletMultipartResolver
回答:
@Beanpublic MultipartResolver multipartResolver() throws IOException { CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(); multipartResolver.setUploadTempDir( new FileSystemResource("/tmp/spittr/uploads")); multipartResolver.setMaxUploadSize(2097152); multipartResolver.setMaxInMemorySize(0); return multipartResolver;}
123
问题: #7.2.2-1 | 想一下,对于提交的图片数据我们都了解哪些信息呢。或者,更为重要的是,我们还不知道些什么呢?
回答:
尽管我们已经得到了byte数组形式的图片数据,并且根据它能够得到图片的大小,但是对于其他内容我们就一无所知了。我们不知道文件的类型是什么,甚至不知道原始的文件名是什么。你需要判断如何将byte数组转换为可存储的文件
124
问题: #7.2.2-2 | Spring所提供的MultipartFile接口,用来处理上传的文件
回答:
package org.springframework.web.multipart;import java.io.File;import java.io.IOException;import java.io.InputStream;
public interface MultipartFile { String getName(); String getOriginalFilename(); String getContentType(); boolean isEmpty(); long getSize(); byte[] getBytes() throws IOException; InputStream getInputStream() throws IOException; void transferTo(File dest) throws IOException;}
125
问题: #7.2.2-3 | 除此之外,MultipartFile还提供了一个便利的transferTo()方法,它能够帮助我们将上传的文件写入到文件系统中。作为样例,我们可以在process-Registration()方法中添加如下的几行代码,从而将上传的图片文件写入到文件系统中。代码是什么?、
回答:
profilePicture.transferTo(new File("/data/spittr/" + profilePicture.getOriginalFilename()));
126
问题: #7.2.2-4 | Part接口:Spring MultipartFile的替代方案。Part接口内部是什么?
回答:
package javax.servlet.http;import java.io.*;import java.util.*;
public interface Part { public InputStream getInputStream() throws IOException; public String getContentType(); public String getName(); public String getSubmittedFileName(); public long getSize(); public void write(String fileName) throws IOException; public void delete() throws IOException; public String getHeader(String name); public Collection<String> getHeaders(String name); public Collection<String> getHeaderNames();}
127
问题: #7.2.2-5 | Part方法与MultipartFile,中比较类似,但是稍有差异的地方,请举出2例
回答:
有一些比较类似,但是稍有差异
128
问题: #7.3-1 | Spring提供了3种方式将异常转换为响应
回答:
129
问题: #7.3.1-1 | Spring的一些异常会默认映射为HTTP状态码
回答:
130
问题: #7.3.1-2 | @ResponseStatus注解:将异常映射为特定的状态码
回答:
package spittr.web;import org.springframework.http.HttpStatus;import org.springframework.web.bind.annotation.RespinseStatus;
@RespinseStatus(value=HttpStatus.NOT_FOUND, //将异常映射为HTTP状态404 reason="Spittle Not Found")public class SpittleNotFoundException extends RuntimeException{ ...}