Merge branch 'master' of https://git.royalpay.com.au/git/royalv2.manage
commit
7652436c54
@ -0,0 +1,5 @@
|
||||
/**
|
||||
* file upload
|
||||
* Created by yixian on 2016-07-04.
|
||||
*/
|
||||
package au.com.royalpay.payment.manage.support.attachment;
|
@ -0,0 +1,49 @@
|
||||
package au.com.royalpay.payment.manage.support.attachment.web;
|
||||
|
||||
import au.com.royalpay.payment.manage.permission.manager.RequireManager;
|
||||
import au.com.royalpay.payment.manage.permission.manager.RequirePartner;
|
||||
import au.com.royalpay.payment.tools.connections.attachment.core.AttachmentClient;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* 文件上传
|
||||
* Created by yixian on 2016-05-05.
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/attachment")
|
||||
public class AttachmentController {
|
||||
@Resource
|
||||
private AttachmentClient attachmentClient;
|
||||
|
||||
@RequestMapping(value = "/files", method = RequestMethod.POST)
|
||||
@RequirePartner
|
||||
@RequireManager
|
||||
public JSONObject uploadImage(@RequestParam MultipartFile file) throws IOException {
|
||||
return attachmentClient.uploadFile(file,false);
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/secret_files", method = RequestMethod.POST)
|
||||
@RequirePartner
|
||||
@RequireManager
|
||||
public JSONObject uploadFile(@RequestParam MultipartFile file) throws IOException {
|
||||
return attachmentClient.uploadFile(file,true);
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/files/{fileId}", method = RequestMethod.GET)
|
||||
public void getFileUrl(@PathVariable String fileId, HttpServletResponse response) throws IOException {
|
||||
String url = attachmentClient.getFileUrl(fileId);
|
||||
response.sendRedirect(url);
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/files/{fileId}/thumbnail",method = RequestMethod.GET)
|
||||
public void getThumbnail(@PathVariable String fileId, HttpServletResponse response) throws IOException {
|
||||
JSONObject thumbnail = attachmentClient.getThumbnail(fileId, 320);
|
||||
response.sendRedirect(thumbnail.getString("url"));
|
||||
}
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
package au.com.royalpay.payment.manage.support.ueditor.core;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
* Created by yixian on 2016-10-11.
|
||||
*/
|
||||
public interface UEditorApi {
|
||||
JSONObject getAllConfigs();
|
||||
|
||||
JSONObject uploadImage(MultipartFile file);
|
||||
|
||||
JSONObject uploadFile(MultipartFile file);
|
||||
|
||||
JSONObject uploadScrawl(String base64String);
|
||||
|
||||
JSONObject listImages(int start);
|
||||
|
||||
JSONObject listFiles(int start);
|
||||
}
|
@ -0,0 +1,134 @@
|
||||
package au.com.royalpay.payment.manage.support.ueditor.core.impls;
|
||||
|
||||
import au.com.royalpay.payment.manage.support.ueditor.core.UEditorApi;
|
||||
import au.com.royalpay.payment.tools.connections.attachment.core.AttachmentClient;
|
||||
import au.com.royalpay.payment.tools.exceptions.ServerErrorException;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by yixian on 2016-10-11.
|
||||
*/
|
||||
@Service
|
||||
public class UEditorApiImpl implements UEditorApi {
|
||||
@Resource
|
||||
private AttachmentClient attachmentClient;
|
||||
|
||||
private final int maxUploadSize = 5_000_000;
|
||||
|
||||
@Override
|
||||
public JSONObject getAllConfigs() {
|
||||
List<String> imageTypes = Arrays.asList(".png", ".jpg", ".jpeg", ".gif");
|
||||
List<String> zipTypes = Arrays.asList(".zip", ".rar", ".gz", ".tar", ".7z");
|
||||
List<String> documentTypes = Arrays.asList(".pdf", ".doc", ".docx", ".xls", ".xlsx");
|
||||
|
||||
JSONObject config = new JSONObject();
|
||||
//图片上传
|
||||
config.put("imageActionName", "uploadimage");
|
||||
config.put("imageFieldName", "file");
|
||||
config.put("imageMaxSize", maxUploadSize);
|
||||
config.put("imageAllowFiles", imageTypes);
|
||||
config.put("imageCompressEnable", true);
|
||||
config.put("imageCompressBorder", 1600);
|
||||
config.put("imageInsertAlign", "none");
|
||||
config.put("imageUrlPrefix", "");
|
||||
|
||||
//涂鸦
|
||||
config.put("scrawlActionName", "uploadscrawl");
|
||||
config.put("scrawlFieldname", "file");
|
||||
config.put("scrawlMaxSize", maxUploadSize);
|
||||
config.put("scrawlUrlPrefix", "");
|
||||
config.put("scrawlInsertAlign", "none");
|
||||
|
||||
//上传文件
|
||||
config.put("fileActionName", "uploadfile");
|
||||
config.put("fileFieldName", "file");
|
||||
config.put("fileUrlPrefix", "");
|
||||
config.put("fileMaxSize", maxUploadSize);
|
||||
List<String> allTypes = new ArrayList<>();
|
||||
allTypes.addAll(imageTypes);
|
||||
allTypes.addAll(zipTypes);
|
||||
allTypes.addAll(documentTypes);
|
||||
config.put("fileAllowFiles", allTypes);
|
||||
|
||||
config.put("imageManagerActionName", "listimage");
|
||||
config.put("imageManagerListSize", 20);
|
||||
config.put("imageManagerUrlPrefix", "");
|
||||
config.put("imageManagerInsertAlign", "none");
|
||||
config.put("imageManagerAllowFiles", imageTypes);
|
||||
|
||||
config.put("fileManagerActionName", "listfile");
|
||||
config.put("fileManagerUrlPrefix", "");
|
||||
config.put("fileManagerListSize", 20);
|
||||
config.put("fileManagerAllowFiles", allTypes);
|
||||
return config;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject uploadImage(MultipartFile file) {
|
||||
return upload(file);
|
||||
}
|
||||
|
||||
private JSONObject upload(MultipartFile file) {
|
||||
try {
|
||||
JSONObject uploadResult = attachmentClient.uploadFile(file, false);
|
||||
return buildResult(uploadResult);
|
||||
} catch (IOException e) {
|
||||
throw new ServerErrorException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private JSONObject buildResult(JSONObject uploadResult) {
|
||||
JSONObject res = new JSONObject();
|
||||
res.put("state", "SUCCESS");
|
||||
res.put("size", uploadResult.getLongValue("length"));
|
||||
res.put("name", uploadResult.getString("original_filename"));
|
||||
res.put("original", uploadResult.getString("original_filename"));
|
||||
res.put("url", uploadResult.getString("url"));
|
||||
res.put("type", "." + uploadResult.getString("filetype"));
|
||||
return res;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject uploadFile(MultipartFile file) {
|
||||
return upload(file);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject uploadScrawl(String base64String) {
|
||||
byte[] bytes = Base64.decodeBase64(base64String);
|
||||
InputStream ins = new ByteArrayInputStream(bytes);
|
||||
JSONObject uploadResult = attachmentClient.uploadFile(ins, "scrawl.jpg", false);
|
||||
return buildResult(uploadResult);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject listImages(int start) {
|
||||
return emptyResult(start);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject listFiles(int start) {
|
||||
return emptyResult(start);
|
||||
}
|
||||
|
||||
private JSONObject emptyResult(int start) {
|
||||
JSONObject res = new JSONObject();
|
||||
res.put("state","SUCCESS");
|
||||
res.put("start",start);
|
||||
res.put("total",0);
|
||||
res.put("list",new ArrayList<JSONObject>());
|
||||
//{url:...,mtime:seconds stamp}
|
||||
return res;
|
||||
}
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
package au.com.royalpay.payment.manage.support.ueditor.web;
|
||||
|
||||
import au.com.royalpay.payment.manage.support.ueditor.core.UEditorApi;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* Created by yixian on 2016-10-11.
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/api/ueditor_api")
|
||||
public class UEditorApiController {
|
||||
@Resource
|
||||
private UEditorApi uEditorApi;
|
||||
|
||||
@RequestMapping(method = RequestMethod.GET, params = "action=config")
|
||||
public JSONObject getActionConfig() {
|
||||
return uEditorApi.getAllConfigs();
|
||||
}
|
||||
|
||||
@RequestMapping(method = RequestMethod.POST, params = "action=uploadimage")
|
||||
public JSONObject uploadImage(@RequestParam MultipartFile file) {
|
||||
return uEditorApi.uploadImage(file);
|
||||
}
|
||||
|
||||
@RequestMapping(method = RequestMethod.POST, params = "action=uploadfile")
|
||||
public JSONObject uploadFile(@RequestParam MultipartFile file) {
|
||||
return uEditorApi.uploadFile(file);
|
||||
}
|
||||
|
||||
@RequestMapping(method = RequestMethod.POST, params = "action=uploadscrawl")
|
||||
public JSONObject uploadScrawl(@RequestParam String file) {
|
||||
return uEditorApi.uploadScrawl(file);
|
||||
}
|
||||
|
||||
@RequestMapping(method = RequestMethod.POST, params = "action=listimage")
|
||||
public JSONObject listImages(@RequestParam(defaultValue = "0") int start) {
|
||||
return uEditorApi.listImages(start);
|
||||
}
|
||||
|
||||
@RequestMapping(method = RequestMethod.POST, params = "action=listfile")
|
||||
public JSONObject listFiles(@RequestParam(defaultValue = "0") int start) {
|
||||
return uEditorApi.listFiles(start);
|
||||
}
|
||||
}
|
Loading…
Reference in new issue