编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

ueditor 自定义上传图片,上传图片自定义

wxchong 2024-09-25 23:10:13 开源技术 9 ℃ 0 评论

前台:

既然你们都走到这里来了,那么前面的就不在多说了,直接进去配置好的页面。

<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 和怎么返回数据格式。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表