spring mvc下载文件

public ResponseEntity<byte[]> download(String fileName, File file) throws IOException {
		String dfileName = new String(fileName.getBytes("gb2312"), "iso8859-1");
		HttpHeaders headers = new HttpHeaders();
		headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
		headers.setContentDispositionFormData("attachment", dfileName);
		return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.CREATED);
	}


使用这种方式需要修改下application配置文件,是配置response的字符编码的,如果不配置,可能会出现乱码等一系列问题。
<!-- 设置json和response的字符编码 -->
	<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
		<property name="messageConverters"> 
			<list> 
				<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" /> 
				<ref bean="stringHttpMessageConverter" /> 
			</list> 
		</property> 
	</bean> 
	<bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter"> 
		<property name="supportedMediaTypes"> 
			<list> 
				<value>text/plain;charset=UTF-8</value> 
			</list> 
		</property> 
	</bean>

猜你喜欢

转载自utopialxw.iteye.com/blog/2358786