springbootの下でueditorアップロード機能の実現と遭遇した問題
前言
本文は主にspringbootの下でueditorのアップロード機能の実現と出会ういくつかの問題の処理を書きます。
全体プロジェクト構造展示
Springbootはueditorとアップロード機能を統合して具体的なステップを実現します。
1、ブルーデイトをダウンロードします。
これは公式サイトでダウンロードすればいいですが、utf-8バージョンの資源がないようです。ソース版は何回も中断されました。最終的には第三者からダウンロードしました。
2、試験ページを新規作成する
ueditorのルートディレクトリの下にindexがあります。これを使えばいいです。ソースは以下の通りです。
その中のconfig.jsonはueditor-1.4.3のフォルダから拷問されました。デフォルトのアップロードファイルのパスはconfig.jsonのディレクトリです。そしてspringbootの下で試してみましたが、イメージブックの設定はあまり役に立たないです。
5、Ueditor Controllerを新設する
ueditor.jsonの設定ファイルを読み込むと同時にアップロード方法を実現します(もちろんここでは直接にueditor.jarのアップロードを使っていますので、簡単に見えますが、自分で書くとコードの量がいっぱいあります)
6、続いて、私達はueditor.co.fig.jsの中のserverUrlを私達の第5歩のそのcontrolerに配置する必要があります。以下の通りです。
7、最後にまたconfig.jsonに私達がアップロードした具体的な詳細を配置してください。以下は写真をアップロードします。
1)ドメイン名+ イマジガルPrefix+イマジパントFormatは現在のファイルへのアクセス経路です。
2)imagUrlefixは、画像アクセス経路のプレフィックスであり、例えばhttp://localhost:8080/fileupload/ueditor、imagUrlefixはその中の「/fileupled/ueditor」である。
3)imagPathFormatは、imagUrlefixをルートとするファイル保存の具体的な経路である。例えば、
http://localhost:8080/fileupload/ueditor/image/20190202/121222.jpg,イマジPathFormatはその中の「/イメージ/20190202/1212222.jpg」です。
4)他のパラメータが残っていると明らかです。
7、起こり得る問題
1、設定されているファイルは最大20488ですが、ファイルは1 M以上のバックグラウンドでエラーが発生しましたか?
解決:これはデフォルトでspringbootのアップロードを開始したからです。aplication.propertiesでspring.servlet.multipart.enabled=falseでいいです。またはそのデフォルトの最大値spring.servlet.multip.max-file-size=1 MBを飛び降りることもできます。
2、imagePathFormatを修正したのに、単に元の経路で保存しましたか?
解决:直接config.jsonファイルをファイルを保存したいところに置いたらいいです。
3、オンライン管理画面が表示できませんか?
解决:上のUedit Controllerではすでに解决しました。action=listfileまたはaction=listimageのときにnew Action Enter(request,configJsontPath).exec()で得られた文字列のconfigJsontPathパスを空の文字列に置き換えればいいです。次のように。
最後にサービスを開始し、http://localhost:8080/ueditor/index.htmlページを開けてテストします。効果は下図のようです。
締め括りをつける
以上は小编で绍介したspringbootの下でueditorのアップロード机能の実现と问题です。皆さんに助けてほしいです。もし何か疑问があれば、メッセージをください。小编はすぐに返事します。ここでも私たちのサイトを応援してくれてありがとうございます。
本文があなたのためになると思ったら、転載を歓迎します。出所を明記してください。ありがとうございます。
本文は主にspringbootの下でueditorのアップロード機能の実現と出会ういくつかの問題の処理を書きます。
全体プロジェクト構造展示
Springbootはueditorとアップロード機能を統合して具体的なステップを実現します。
1、ブルーデイトをダウンロードします。
これは公式サイトでダウンロードすればいいですが、utf-8バージョンの資源がないようです。ソース版は何回も中断されました。最終的には第三者からダウンロードしました。
2、試験ページを新規作成する
ueditorのルートディレクトリの下にindexがあります。これを使えばいいです。ソースは以下の通りです。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> demo</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<!-- config.json -->
<script type="text/javascript" charset="utf-8" src="/ueditor/ueditor.config.js"></script>
<script type="text/javascript" charset="utf-8" src="/ueditor/ueditor.all.js"> </script>
</head>
<body>
<div>
<h1>UEditor </h1>
<script id="editor" type="text/plain" style="width:100%;height:330px;"></script>
</div>
<div id="btns">
<div>
<button οnclick="getAllHtml()"> html </button>
<button οnclick="getContent()"> </button>
<button οnclick="setContent()"> </button>
<button οnclick="setContent(true)"> </button>
<button οnclick="getContentTxt()"> </button>
<button οnclick="getPlainTxt()"> </button>
<button οnclick="hasContent()"> </button>
<button οnclick="setFocus()"> </button>
<button οnmοusedοwn="isFocus(event)"> </button>
<button οnmοusedοwn="setblur(event)" > </button>
</div>
<div>
<button οnclick="getText()"> </button>
<button οnclick="insertHtml()"> </button>
<button id="enable" οnclick="setEnabled()"> </button>
<button οnclick="setDisabled()"> </button>
<button οnclick=" UE.getEditor('editor').setHide()"> </button>
<button οnclick=" UE.getEditor('editor').setShow()"> </button>
<button οnclick=" UE.getEditor('editor').setHeight(300)"> 300 </button>
</div>
<div>
<button οnclick="getLocalData()" > </button>
<button οnclick="clearLocalData()" > </button>
</div>
</div>
<div>
<button οnclick="createEditor()">
</button>
<button οnclick="deleteEditor()">
</button>
</div>
<script type="text/javascript">
//
// getEditor , , UE.getEditor('editor')
var ue = UE.getEditor('editor');
function isFocus(e){
alert(UE.getEditor('editor').isFocus());
UE.dom.domUtils.preventDefault(e)
}
function setblur(e){
UE.getEditor('editor').blur();
UE.dom.domUtils.preventDefault(e)
}
function insertHtml() {
var value = prompt(' html ', '');
UE.getEditor('editor').execCommand('insertHtml', value)
}
function createEditor() {
enableBtn();
UE.getEditor('editor');
}
function getAllHtml() {
alert(UE.getEditor('editor').getAllHtml())
}
function getContent() {
var arr = [];
arr.push(" editor.getContent() ");
arr.push(" :");
arr.push(UE.getEditor('editor').getContent());
alert(arr.join("
"));
}
function getPlainTxt() {
var arr = [];
arr.push(" editor.getPlainTxt() ");
arr.push(" :");
arr.push(UE.getEditor('editor').getPlainTxt());
alert(arr.join('
'))
}
function setContent(isAppendTo) {
var arr = [];
arr.push(" editor.setContent(' ueditor') ");
UE.getEditor('editor').setContent(' ueditor', isAppendTo);
alert(arr.join("
"));
}
function setDisabled() {
UE.getEditor('editor').setDisabled('fullscreen');
disableBtn("enable");
}
function setEnabled() {
UE.getEditor('editor').setEnabled();
enableBtn();
}
function getText() {
// , getText , ,
var range = UE.getEditor('editor').selection.getRange();
range.select();
var txt = UE.getEditor('editor').selection.getText();
alert(txt)
}
function getContentTxt() {
var arr = [];
arr.push(" editor.getContentTxt() ");
arr.push(" :");
arr.push(UE.getEditor('editor').getContentTxt());
alert(arr.join("
"));
}
function hasContent() {
var arr = [];
arr.push(" editor.hasContents() ");
arr.push(" :");
arr.push(UE.getEditor('editor').hasContents());
alert(arr.join("
"));
}
function setFocus() {
UE.getEditor('editor').focus();
}
function deleteEditor() {
disableBtn();
UE.getEditor('editor').destroy();
}
function disableBtn(str) {
var div = document.getElementById('btns');
var btns = UE.dom.domUtils.getElementsByTagName(div, "button");
for (var i = 0, btn; btn = btns[i++];) {
if (btn.id == str) {
UE.dom.domUtils.removeAttributes(btn, ["disabled"]);
} else {
btn.setAttribute("disabled", "true");
}
}
}
function enableBtn() {
var div = document.getElementById('btns');
var btns = UE.dom.domUtils.getElementsByTagName(div, "button");
for (var i = 0, btn; btn = btns[i++];) {
UE.dom.domUtils.removeAttributes(btn, ["disabled"]);
}
}
function getLocalData () {
alert(UE.getEditor('editor').execCommand( "getlocaldata" ));
}
function clearLocalData () {
UE.getEditor('editor').execCommand( "clearlocaldata" );
alert(" ")
}
</script>
</body>
</html>
3、アップロードに必要なjarパッケージを導入する
<dependency>
<groupId>com.gitee.qdbp.thirdparty</groupId>
<artifactId>ueditor</artifactId>
<version>1.4.3.3</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
</dependency>
4、新規アップロードファイルを作成してディレクトリフォルダを保存します。以下の通りです。その中のconfig.jsonはueditor-1.4.3のフォルダから拷問されました。デフォルトのアップロードファイルのパスはconfig.jsonのディレクトリです。そしてspringbootの下で試してみましたが、イメージブックの設定はあまり役に立たないです。
5、Ueditor Controllerを新設する
ueditor.jsonの設定ファイルを読み込むと同時にアップロード方法を実現します(もちろんここでは直接にueditor.jarのアップロードを使っていますので、簡単に見えますが、自分で書くとコードの量がいっぱいあります)
import com.baidu.ueditor.ActionEnter;
import org.springframework.stereotype.Controller;
import org.springframework.util.ClassUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
/**
*
* 1:config.json (imageMaxSize) js ,
* 2: ueditor.jar
* 3:config.json imageUrlPrefix :"imageUrlPrefix": "/fileupload/ueditor"
* 3:config.json imagePathFormat :"imagePathFormat": "/image/{yyyy}{mm}{dd}/{time}{rand:6}"
* 4:imageUrlPrefix + imagePathFormat
*
* zkh
* 2019 11 14 9:09
*/
@Controller
public class UeditorController {
// /ueditor/jsp/config.json , config.json
private String configJsonParentPath = ClassUtils.getDefaultClassLoader().getResource("").getPath() + "static/fileupload/ueditor";
/**
* UEditor get serverUrl , action=config UEditor
* : ueditor.jar ActionEnter , , ActionEnter
*/
@RequestMapping("ueditor")
public void getEditorConfig(HttpServletRequest request, HttpServletResponse response, String action) {
response.setContentType("application/json");
try {
String exec = new ActionEnter(request, configJsonParentPath).exec();
if(action!=null && (action.equals("listfile") || action.equals("listimage"))) {
exec = exec.replace(configJsonParentPath.substring(1), "/");
}
PrintWriter writer = response.getWriter();
writer.write(exec);
writer.flush();
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
注意して注釈を見る6、続いて、私達はueditor.co.fig.jsの中のserverUrlを私達の第5歩のそのcontrolerに配置する必要があります。以下の通りです。
7、最後にまたconfig.jsonに私達がアップロードした具体的な詳細を配置してください。以下は写真をアップロードします。
/* */
"imageActionName": "uploadimage", /* action ( :http://localhost:8080/ueditor?action=uploadimage) */
"imageFieldName": "upfile", /* */
"imageMaxSize": 2048000, /* , B */
"imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* */
"imageCompressEnable": true, /* , true */
"imageCompressBorder": 1600, /* */
"imageInsertAlign": "none", /* */
/* imageUrlPrefix + imagePathFormat */
"imageUrlPrefix": "/fileupload/ueditor", /* */
/* imagePathFormat config.json */
"imagePathFormat": "/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* ( : config.json ) , */
/* {filename} , */
/* {rand:6} , */
/* {time} */
/* {yyyy} */
/* {yy} */
/* {mm} */
/* {dd} */
/* {hh} */
/* {ii} */
/* {ss} */
/* \ : * ? " < > | */
/* : fex.baidu.com/ueditor/#use-format_upload_filename */
ここで私達が重点的に理解しなければならないのは イマジガルプレミアム、イマジパントフォーム1)ドメイン名+ イマジガルPrefix+イマジパントFormatは現在のファイルへのアクセス経路です。
2)imagUrlefixは、画像アクセス経路のプレフィックスであり、例えばhttp://localhost:8080/fileupload/ueditor、imagUrlefixはその中の「/fileupled/ueditor」である。
3)imagPathFormatは、imagUrlefixをルートとするファイル保存の具体的な経路である。例えば、
http://localhost:8080/fileupload/ueditor/image/20190202/121222.jpg,イマジPathFormatはその中の「/イメージ/20190202/1212222.jpg」です。
4)他のパラメータが残っていると明らかです。
7、起こり得る問題
1、設定されているファイルは最大20488ですが、ファイルは1 M以上のバックグラウンドでエラーが発生しましたか?
解決:これはデフォルトでspringbootのアップロードを開始したからです。aplication.propertiesでspring.servlet.multipart.enabled=falseでいいです。またはそのデフォルトの最大値spring.servlet.multip.max-file-size=1 MBを飛び降りることもできます。
2、imagePathFormatを修正したのに、単に元の経路で保存しましたか?
解决:直接config.jsonファイルをファイルを保存したいところに置いたらいいです。
3、オンライン管理画面が表示できませんか?
解决:上のUedit Controllerではすでに解决しました。action=listfileまたはaction=listimageのときにnew Action Enter(request,configJsontPath).exec()で得られた文字列のconfigJsontPathパスを空の文字列に置き換えればいいです。次のように。
最後にサービスを開始し、http://localhost:8080/ueditor/index.htmlページを開けてテストします。効果は下図のようです。
締め括りをつける
以上は小编で绍介したspringbootの下でueditorのアップロード机能の実现と问题です。皆さんに助けてほしいです。もし何か疑问があれば、メッセージをください。小编はすぐに返事します。ここでも私たちのサイトを応援してくれてありがとうございます。
本文があなたのためになると思ったら、転載を歓迎します。出所を明記してください。ありがとうございます。