版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34354426/article/details/80306350
越来越不想写博客了,真的是累!
好了,废话不多说,进入正题。
前台:
既然你们都走到这里来了,那么前面的就不在多说了,直接进去配置好的页面。
<script type="text/javascript">
var ue = UE.getEditor('editor', {
maximumWords : 2000000, //允许的最大字符数
sourceEditorFirst : false,
allHtmlEnabled : true,
});
//图片和文件存入OSS中
UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl;
UE.Editor.prototype.getActionUrl = function(action) {
if (action == 'uploadimage' || action == 'uploadfile') {
return '${path}/web/ueuploadimageoss!ueUploadImgaeOSS'; //此处改需要把图片上传到哪个Action(Controller)中
} else {
return this._bkGetActionUrl.call(this, action);
}
};
</script>
需要上传的路径返回过去,记得把config.json 中的 imageUrlPrefix 清空。
后台:
package com.yuneecuc.action.web;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletResponse;
import org.apache.struts2.convention.annotation.Action;
import org.json.JSONObject;
import com.yuneecuc.action.PublicAccessAction;
import com.yuneecuc.base.OSSUtils;
import com.yuneecuc.entity.SavedImage;
@Action("ueuploadimageoss")
public class UEUploadImageOSSAction extends ActionSupport {
private File[] upfile;
private String[] upfileFileName;
private String[] upfileContentType;
public void ueUploadImgaeOSS() {
if (upfile == null) {
resultUEMessage("图片不能为空", false, "");
return;
}
SavedImage si = null;
for (int i = 0; i < upfile.length; i++) {
String fileExtension = upfileContentType[i];
try {
si = OSSUtils.uploadFileBinary(new FileInputStream(upfile[i]),
fileExtension.substring(fileExtension.lastIndexOf("/") + 1, fileExtension.length()), null, -1,
null, null);
} catch (IOException e) {
e.printStackTrace();
resultUEMessage("IO异常", false, "");
return;
} catch (Exception e) {
e.printStackTrace();
resultUEMessage("上传失败", false, "");
return;
}
}
resultUEMessage("SUCCESS", true, si.getUrl());
}
/**
* 返回UEditor的信息
*
* @param message
* 错误的消息提示
* @param status
* 是否成功
* @param url
* 图片的URL
*/
private void resultUEMessage(String message, boolean status, String url) {
JSONObject jsobject = new JSONObject();
if (status) {
jsobject.put("state", message);
jsobject.put("url", url);
jsobject.put("original", "");
} else {
jsobject.put("state", message);
jsobject.put("url", "");
jsobject.put("title", "");
jsobject.put("original", "");
}
ServletResponse response = getResponse();
response.setContentType("application/json;charset=utf-8");
try {
String outputStr = "";
if (jsobject != null) {
outputStr = jsobject.toString();
}
// ServletOutputStream对UTF-8的支持不好,此处用Writer
PrintWriter out = response.getWriter();
out.write(outputStr);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public File[] getUpfile() {
return upfile;
}
public void setUpfile(File[] upfile) {
this.upfile = upfile;
}
public String[] getUpfileFileName() {
return upfileFileName;
}
public void setUpfileFileName(String[] upfileFileName) {
this.upfileFileName = upfileFileName;
}
public String[] getUpfileContentType() {
return upfileContentType;
}
public void setUpfileContentType(String[] upfileContentType) {
this.upfileContentType = upfileContentType;
}
}
非常简单,核心是:只要知道哪里改上传的URL 和怎么返回数据格式。