文件上传摘要和样例文件处理
This commit is contained in:
@@ -39,10 +39,13 @@ public class MultipartFileIntercepter extends CommonsMultipartResolver{
|
||||
String encoding = determineEncoding(request);
|
||||
//是否是样例文件
|
||||
boolean isSampleFileUpload = request.getRequestURI().contains(Constants.SAMPLE_UPLOAD_URL_KEYWORD);
|
||||
FileUpload fileUpload = this.prepareFileUpload(encoding,isSampleFileUpload);
|
||||
boolean isDigestFileUpload = request.getRequestURI().contains(Constants.DIGEST_UPLOAD_URL_KEYWORD);
|
||||
FileUpload fileUpload = this.prepareFileUpload(encoding,isSampleFileUpload,isDigestFileUpload);
|
||||
long fileUploadTotalSize=0l;
|
||||
Properties languageProp=getMsgProp();
|
||||
MultipartParsingResult multipartParsingResult=null;
|
||||
try {
|
||||
if(isSampleFileUpload || isDigestFileUpload){
|
||||
/*****************预先获取上传文件的总的大小************/
|
||||
FileUpload fileUploadTotal = fileUpload;
|
||||
|
||||
@@ -66,10 +69,14 @@ public class MultipartFileIntercepter extends CommonsMultipartResolver{
|
||||
fileUploadTotal.setSizeMax(fileUploadTotalSize);
|
||||
|
||||
List fileItems = ((ServletFileUpload) fileUploadTotal).parseRequest(request);
|
||||
MultipartParsingResult multipartParsingResult=parseFileItems(fileItems, encoding);
|
||||
multipartParsingResult=parseFileItems(fileItems, encoding);
|
||||
MultiValueMap<String, MultipartFile> files=multipartParsingResult.getMultipartFiles();
|
||||
//单个文件验证文件格式和文件大小
|
||||
validFileList(files,fileUpload,languageProp,isSampleFileUpload);
|
||||
}else{
|
||||
List fileItems = ((ServletFileUpload) fileUpload).parseRequest(request);
|
||||
multipartParsingResult=this.parseFileItems(fileItems, encoding);
|
||||
}
|
||||
|
||||
return multipartParsingResult;
|
||||
|
||||
@@ -120,7 +127,7 @@ public class MultipartFileIntercepter extends CommonsMultipartResolver{
|
||||
* @param isSampleFileUpload
|
||||
* @return
|
||||
*/
|
||||
protected FileUpload prepareFileUpload(String encoding,boolean isSampleFileUpload) {
|
||||
protected FileUpload prepareFileUpload(String encoding,boolean isSampleFileUpload,boolean isDigestFileUpload) {
|
||||
FileUpload fileUpload = getFileUpload();
|
||||
FileUpload actualFileUpload = fileUpload;
|
||||
if (encoding != null && !encoding.equals(fileUpload.getHeaderEncoding())) {
|
||||
@@ -128,8 +135,10 @@ public class MultipartFileIntercepter extends CommonsMultipartResolver{
|
||||
actualFileUpload.setHeaderEncoding(encoding);
|
||||
if(isSampleFileUpload){
|
||||
actualFileUpload.setSizeMax(Constants.SAMPLE_TOTAL_FILE_MAX_SIZE);
|
||||
}else{
|
||||
}else if(isDigestFileUpload){
|
||||
actualFileUpload.setSizeMax(Constants.DIGEST_TOTAL_FILE_MAX_SIZE);
|
||||
}else{
|
||||
actualFileUpload.setSizeMax(fileUpload.getSizeMax());
|
||||
}
|
||||
}
|
||||
return actualFileUpload;
|
||||
|
||||
@@ -410,6 +410,7 @@ public final class Constants {
|
||||
public static final String REDIRECT_RESPONSE_CODE_STARTWITH = Configurations.getStringProperty("redirect_response_code_startwith","30");
|
||||
|
||||
public static final String SAMPLE_UPLOAD_URL_KEYWORD = Configurations.getStringProperty("sample_upload_url_keyword","av");
|
||||
public static final String DIGEST_UPLOAD_URL_KEYWORD = Configurations.getStringProperty("digest_upload_url_keyword","fileTransfer");
|
||||
public static final String SAMPLE_FILE_TYPE = Configurations.getStringProperty("sample_file_type","");
|
||||
public static final long SAMPLE_SINGLE_FILE_MAX_SIZE = Configurations.getLongProperty("sample_single_file_max_size",10485760l);//10M
|
||||
public static final long SAMPLE_TOTAL_FILE_MAX_SIZE = Configurations.getLongProperty("sample_total_file_max_size",52428800l);//50M
|
||||
|
||||
@@ -316,6 +316,7 @@ redirect_content_key=content
|
||||
redirect_response_code_startwith=30
|
||||
#样例文件上传的uri关键词
|
||||
sample_upload_url_keyword=/av
|
||||
digest_upload_url_keyword=/fileTransfer
|
||||
#样例和摘要文件大小类型设置
|
||||
sample_file_type=,mp4,flv,ivf,mp2v,
|
||||
#10M 10485760
|
||||
|
||||
@@ -247,6 +247,7 @@
|
||||
<bean id="multipartResolver"
|
||||
class="com.nis.interceptor.MultipartFileIntercepter" >
|
||||
<property name="defaultEncoding" value="utf-8"></property>
|
||||
<property name="maxUploadSize" value="5242880"></property><!-- 5*1024*1024 -->
|
||||
</bean>
|
||||
|
||||
<bean
|
||||
|
||||
Reference in New Issue
Block a user