1
2
package com . huaheng . pc . common ;
3
import java.io.IOException ;
4
5
import java.io.UnsupportedEncodingException ;
import java.net.URLEncoder ;
6
7
8
import java.util.HashMap ;
import java.util.Map ;
import javax.annotation.Resource ;
9
10
import javax.servlet.http.HttpServletRequest ;
import javax.servlet.http.HttpServletResponse ;
11
12
import com.huaheng.common.config.Global ;
huhai
authored
5 years ago
13
14
import com.google.zxing.WriterException ;
15
import com.huaheng.common.config.Global ;
16
import com.huaheng.common.config.ServerConfig ;
17
import com.huaheng.common.utils.QRCodeGenerator ;
18
import com.huaheng.common.utils.file.FileUploadUtils ;
19
import com.huaheng.framework.config.HuaHengConfig ;
20
import com.huaheng.framework.web.domain.AjaxResult ;
21
22
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
23
import org.springframework.beans.factory.annotation.Autowired ;
24
25
26
27
import org.springframework.http.HttpHeaders ;
import org.springframework.http.HttpStatus ;
import org.springframework.http.MediaType ;
import org.springframework.http.ResponseEntity ;
28
29
import org.springframework.stereotype.Controller ;
import org.springframework.util.ResourceUtils ;
30
import org.springframework.web.bind.annotation.* ;
31
import com.huaheng.common.utils.file.FileUtils ;
32
import org.springframework.web.multipart.MultipartFile ;
33
34
35
36
37
38
39
40
41
42
43
/**
* 通用请求处理
*
* @author huaheng
*/
@Controller
public class CommonController
{
private static final Logger log = LoggerFactory . getLogger ( CommonController . class );
44
45
46
@Resource
private ServerConfig serverConfig ;
47
@RequestMapping ( "common/download" )
48
49
50
51
52
public void fileDownload ( String fileName , Boolean delete , HttpServletResponse response , HttpServletRequest request ) {
try {
String realFileName = System . currentTimeMillis () + fileName . substring ( fileName . indexOf ( "_" ) + 1 );
String filePath = Global . getDownloadPath () + fileName ;
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
response . setCharacterEncoding ( "utf-8" );
response . setContentType ( "multipart/form-data" );
response . setHeader ( "Content-Disposition" , "attachment;fileName=" + setFileDownloadHeader ( request , realFileName ));
FileUtils . writeBytes ( filePath , response . getOutputStream ());
if ( delete )
{
FileUtils . deleteFile ( filePath );
}
}
catch ( Exception e )
{
log . error ( "下载文件失败" , e );
}
}
public String setFileDownloadHeader ( HttpServletRequest request , String fileName ) throws UnsupportedEncodingException
{
final String agent = request . getHeader ( "USER-AGENT" );
String filename = fileName ;
if ( agent . contains ( "MSIE" ))
{
// IE浏览器
filename = URLEncoder . encode ( filename , "utf-8" );
filename = filename . replace ( "+" , " " );
}
else if ( agent . contains ( "Firefox" ))
{
// 火狐浏览器
filename = new String ( fileName . getBytes (), "ISO8859-1" );
}
else if ( agent . contains ( "Chrome" ))
{
// google浏览器
filename = URLEncoder . encode ( filename , "utf-8" );
}
else
{
// 其它浏览器
filename = URLEncoder . encode ( filename , "utf-8" );
}
return filename ;
}
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
@GetMapping ( value = "/image/{text}" )
public ResponseEntity < byte []> getImage ( @PathVariable ( "text" ) String text ) {
byte [] qrcode = null ;
try {
qrcode = QRCodeGenerator . getQRCodeImage ( text , 100 , 100 );
} catch ( WriterException e ) {
e . printStackTrace ();
} catch ( IOException e ) {
e . printStackTrace ();
}
// Set headers
final HttpHeaders headers = new HttpHeaders ();
headers . setContentType ( MediaType . IMAGE_PNG );
return new ResponseEntity < byte []>( qrcode , headers , HttpStatus . CREATED );
}
113
114
115
116
117
118
119
120
121
122
123
/**
* 通用上传请求
*/
@PostMapping ( "/common/upload" )
@ResponseBody
public AjaxResult uploadFile ( MultipartFile file ) throws Exception
{
try
{
// 上传文件路径
124
String filePath = HuaHengConfig . getProfile ();
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
// 上传并返回新文件名称
String fileName = FileUploadUtils . upload ( filePath , file );
String url = serverConfig . getUrl () + "/" + fileName ;
AjaxResult ajax = AjaxResult . success ();
Map < String , Object > map = new HashMap <>();
map . put ( "fileName" , fileName );
map . put ( "url" , url );
ajax . setData ( map );
return ajax ;
}
catch ( Exception e )
{
return AjaxResult . error ( e . getMessage ());
}
}
141
}