當我們自己的服務器本身的帶寬和內存不夠的時候,我們需要把圖片還有文件之類的放置到其他的服務器上,這樣可以加快網頁的加載速度,比如我用的是七牛雲服務器。
1、準備工作。
需要一個七牛雲賬號。得到其中3個七牛雲sdk需要用的參數:accessKey,secretKey,bucket。
2、代碼部分
1)build.gradle 中先添加七牛雲Jar包
compile 'com.qiniu:qiniu-java-sdk:[7.2.0, 7.2.99]'
2)修改 ueditor.config.js 其他不變,就修改serverUrl
serverUrl: "/manager/ueditor"
3)添加Ueditor配置文件config.json
該文件在下載的ueditor中
修改其中 imageUrlPrefix 的值爲自己的七牛雲的域名
"imageUrlPrefix": "http://p047etchj.bkt.clouddn.com/", /* 圖片訪問路徑前綴 */
4)添加ueditor方法
/**
* ueditor 配置
*/
@RequestMapping("/ueditor")
@ResponseBody
public Object ueditor(HttpServletRequest request) throws Exception {
String action = request.getParameter("action");
//圖片上傳
if ("uploadimage".equals(action)) {
String contentType = request.getContentType();
if (contentType != null && contentType.toLowerCase().startsWith("multipart/")) {
MultipartHttpServletRequest multipartRequest = WebUtils.getNativeRequest(request, MultipartHttpServletRequest.class);
//獲取上傳的文件
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
if (fileMap.size() > 0) {
//獲取第一個就是
for (String key : fileMap.keySet()) {
MultipartFile multipartFile = fileMap.get(key);
InputStream inputStream = multipartFile.getInputStream();
String name = multipartFile.getOriginalFilename();
//上傳七牛雲服務器
Map map = QiNiuUtils.updataFile(inputStream, name);
return map;
}
}
}
return null;
//所有圖片列表
} else if ("config".equals(action)) {
File file1 = ResourceUtils.getFile("classpath:config.json");
return FileUtils.readFileToString(file1, "UTF-8");
} else {
//其他的可以自己去實現
return null;
}
}
5)QiNiuUtils七牛雲工具類,實現上傳圖片
public class QiNiuUtils {
public static Map updataFile(InputStream inputStream, String name) {
Map<String, String> map = new HashMap<>();
try {
//構造一個帶指定Zone對象的配置類
Configuration cfg = new Configuration(Zone.zone0());
//...其他參數參考類註釋
UploadManager uploadManager = new UploadManager(cfg);
//...生成上傳憑證,然後準備上傳
String accessKey = "自己的accessKey";
String secretKey = "同";
String bucket = "同";
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket);
name = LocalDateTime.now() + "_" + name;
Response response1 = uploadManager.put(inputStream, name, upToken, null, null);
int statusCode = response1.statusCode;
if (statusCode == 200) {
map.put("state", "SUCCESS");
map.put("title", name);
map.put("type", name.split("\\.")[1]);
map.put("url", name);
} else {
map.put("state", "FAIL");
}
} catch (Exception e) {
e.printStackTrace();
}
return map;
}
}
到這裏,圖片上傳功能以及可以使用了。
歡迎轉載,轉載請註明出處 http://www.dingyinwu.com/article/49.html
如果文章中有任何問題或者可以改進的地方,請大家多提提意見,我會非常感激。