diff --git a/common/pom.xml b/common/pom.xml
index b6bf8266..44a01379 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -28,6 +28,11 @@
org.apache.commons
commons-lang3
+
+ org.apache.commons
+ commons-text
+ ${commons-text.version}
+
commons-codec
commons-codec
@@ -37,28 +42,11 @@
commons-io
${commons-io.version}
-
- commons-fileupload
- commons-fileupload
- ${commons-fileupload.version}
-
commons-beanutils
commons-beanutils
${commons-beanutils.version}
-
- org.apache.commons
- commons-text
- ${commons-text.version}
-
-
-
@@ -88,23 +76,6 @@
${fastjson.version}
-
-
-
-
jaxen
@@ -123,13 +94,6 @@
httpclient
-
-
org.apache.commons
diff --git a/common/src/main/java/com/jeesite/common/ueditor/upload/BinaryUploader.java b/common/src/main/java/com/jeesite/common/ueditor/upload/BinaryUploader.java
index f1bb0790..0a890671 100644
--- a/common/src/main/java/com/jeesite/common/ueditor/upload/BinaryUploader.java
+++ b/common/src/main/java/com/jeesite/common/ueditor/upload/BinaryUploader.java
@@ -10,15 +10,9 @@ import java.util.Map;
import javax.servlet.http.HttpServletRequest;
-import org.apache.commons.fileupload.FileItemIterator;
-import org.apache.commons.fileupload.FileItemStream;
-import org.apache.commons.fileupload.FileUploadException;
-import org.apache.commons.fileupload.disk.DiskFileItemFactory;
-import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
-import com.jeesite.common.codec.EncodeUtils;
import com.jeesite.common.image.ImageUtils;
import com.jeesite.common.io.FileUtils;
import com.jeesite.common.media.VideoUtils;
@@ -33,54 +27,32 @@ public class BinaryUploader {
public static final State save(HttpServletRequest request,
Map conf) {
- FileItemStream fileStream = null; // 原始上传
- MultipartFile fileStream2 = null; // Spring MVC 上传
- boolean isAjaxUpload = request.getHeader("X-Requested-With") != null;
-
- if (!ServletFileUpload.isMultipartContent(request)) {
+
+ String contentType = request.getContentType();
+ if (!("POST".equals(request.getMethod()) && contentType != null
+ && contentType.startsWith("multipart/"))) {
return new BaseState(false, AppInfo.NOT_MULTIPART_CONTENT);
}
- ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
-
- if ( isAjaxUpload ) {
- upload.setHeaderEncoding( EncodeUtils.UTF_8 );
- }
-
try {
- FileItemIterator iterator = upload.getItemIterator(request);
-
- while (iterator.hasNext()) {
- fileStream = iterator.next();
-
- if (!fileStream.isFormField()) {
+ MultipartFile file = null;
+ if (request instanceof MultipartHttpServletRequest){
+ MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
+ Iterator it = multiRequest.getFileNames();
+ while (it.hasNext()) {
+ MultipartFile f = multiRequest.getFile(it.next());
+ if (f != null && !f.isEmpty() && f.getOriginalFilename() != null) {
+ file = f;
+ }
break;
}
- fileStream = null;
}
-
- if (fileStream == null) {
- // 原始上传无文件,则检查是否是Spring MVC上传 ThinkGem
- MultipartFile file = null;
- if (request instanceof MultipartHttpServletRequest){
- MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
- Iterator it = multiRequest.getFileNames();
- while (it.hasNext()) {
- file = multiRequest.getFile(it.next());
- break;
- }
- }
- if (file != null && !file.isEmpty() && file.getOriginalFilename() != null) {
- fileStream2 = file;
- }
- }
-
- if (fileStream == null && fileStream2 == null) {
+ if (file == null) {
return new BaseState(false, AppInfo.NOTFOUND_UPLOAD_DATA);
}
String savePath = (String) conf.get("savePath");
- String originFileName = fileStream != null ? fileStream.getName() : fileStream2.getOriginalFilename();
+ String originFileName = file.getOriginalFilename();
String suffix = FileType.getSuffixByFilename(originFileName);
originFileName = originFileName.substring(0,
@@ -97,11 +69,18 @@ public class BinaryUploader {
String physicalPath = FileUtils.path((String) conf.get("rootPath") + savePath);
- InputStream is = fileStream != null ? fileStream.openStream() : fileStream2.getInputStream();
- State storageState = StorageManager.saveFileByInputStream(is, physicalPath, maxSize);
- is.close();
+ InputStream is = null;
+ State storageState = null;
+ try {
+ is = file.getInputStream();
+ storageState = StorageManager.saveFileByInputStream(is, physicalPath, maxSize);
+ } finally {
+ if (is != null) {
+ is.close();
+ }
+ }
- if (storageState.isSuccess()) {
+ if (storageState != null && storageState.isSuccess()) {
int actionCode = ((Integer) conf.get("actionCode")).intValue();
String ctx = request.getContextPath(); // ThinkGem 修正上传图片后返回无contextpath问题
@@ -154,8 +133,6 @@ public class BinaryUploader {
}
return storageState;
- } catch (FileUploadException e) {
- return new BaseState(false, AppInfo.PARSE_REQUEST_ERROR);
} catch (IOException e) {
return new BaseState(false, AppInfo.IO_ERROR);
}