Ckeditor + Ckfinderを使用したJavaScriptファイルアップロードケースの詳細な説明

Ckeditor + Ckfinderを使用したJavaScriptファイルアップロードケースの詳細な説明

1. 準備

Ckeditor_4.5.7_full + Ckfinder_java_2.6.0

2. 減圧

1. 通常のファイルを解凍するのと同じように、ckeditor を解凍します。

和平常文件解壓相同,正常解壓即可

2. ckfinder を解凍します。解凍後、ckfinder フォルダーに入り、CKFinderJava-2.6.0.war ファイルを見つけます。解凍を続けます。

這里寫圖片描述

3. 赤い枠に注目

這里寫圖片描述

3. 統合を開始する

1. 準備が完了したら、図 1 の ckeditor と図 3 の ckfinder フォルダーを自分のプロジェクトの WebContent にコピーします。 WebContent の下に新しいフォルダー「assets」を作成しました。

這里寫圖片描述

2. 新しいJSPページを作成する

<%@ ページ language="java" contentType="text/html; charset=UTF-8"
    ページエンコーディング="UTF-8"%>
<%@ タグライブラリ uri="http://java.sun.com/jsp/jstl/core" プレフィックス="c"%>
<%
    文字列パス = request.getContextPath();
    文字列 basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path;
%>
<c:set var="base" value="<%=basePath%>"></c:set>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<ヘッド>
<meta http-equiv="コンテンツタイプ" コンテンツ="text/html; charset=UTF-8">

<!-- ckeditor.js と ckfinder.js をインポートします -->
<script type="text/javascript" src="${base }/assets/ckeditor/ckeditor.js"></script>
<script type="text/javascript" src="${base }/assets/ckfinder/ckfinder.js"></script>
<title>ckeditor</title>
</head>
<本文>
    ${ベース}
    <p>
    <h1>${メッセージ }</h1>
    <フォーム>
      <テキストエリア名="エディター1" id="エディター1" 行数="10" 列数="80">
          これは CKEditor に置き換えられるテキストエリアです。
      </テキストエリア>
    </フォーム>
    <!-- ckeditor を使用して、ID editor1 のテキストエリアを操作します -->
    <script type="text/javascript">
        var editor = CKEDITOR.replace( 'editor1' );
        CKFinder.setupCKEditor(エディター、'${base }/assets/ckfinder/');
    </スクリプト>
</本文>
</html>

この時点で、リッチ テキスト エディターがすでに表示されます。

3. 図に示すようにディレクトリに入り、config.xml を独自のプロジェクトの WEB-INF にコピーし、ファイルの名前を ckfinder.xml に変更して、lib の下の jar パッケージをインポートします。

這里寫圖片描述

4. ckfinder.xmlを変更する

這里寫圖片描述

Basedir は、ファイルが保存される物理パスです。プロジェクトがコンピューター上で実行されているときに、プロジェクトの実行パスを見つけて、それを保存する場所を探します。 (表現がわかりにくい場合はプライベートメッセージを送ってくださいね〜)
5. ckeditorのconfig.jsファイルを変更する

CKEDITOR.editorConfig = 関数(config) {
    config.height = 300;
    config.enterMode = CKEDITOR.ENTER_BR; // 削除 <p>
    config.shiftEnterMode = CKEDITOR.ENTER_BR; // 削除 <p>
    config.toolbarCanCollapse = true; //ツールバーを折りたたむことができます config.toolbarGroups = [
        { 名前: 'ドキュメント'、グループ: [ 'モード'、'ドキュメント'、'doctools' ] },
        { 名前: 'クリップボード'、グループ: [ 'クリップボード'、'元に戻す' ] },
        { 名前: 'フォーム'、グループ: [ 'フォーム' ] },
        { 名前: '段落'、グループ: [ 'リスト'、'インデント'、'ブロック'、'配置'、'bidi'、'段落' ] },
        { 名前: '編集'、グループ: [ '検索'、'選択'、'スペルチェッカー'、'編集' ] },
        { 名前: '挿入'、グループ: [ '挿入' ] },
        '/',
        { 名前: 'スタイル'、グループ: [ 'スタイル' ] },
        { 名前: 'basicstyles'、グループ: [ 'basicstyles'、'cleanup' ] },
        { 名前: '色'、グループ: [ '色' ] },

        { 名前: 'その他', グループ: [ 'その他' ] },
        { 名前: 'リンク'、グループ: [ 'リンク' ] },
        { 名前: 'about', グループ: [ 'about' ] },
        { 名前: 'ツール'、グループ: [ 'ツール' ] }
    ];
    config.removeButtons = 'About、Flash、Form、Checkbox、Radio、TextField、Textarea、Select、Button、ImageButton、HiddenField、NewPage、Templates、Scayt、Language、Smiley、Iframe、Save、SelectAll、CreateDiv、BidiRtl、BidiLtr、ShowBlocks';
    var p='/Ckeditor/assets/';
        config.filebrowserBrowseUrl =p+'ckfinder/ckfinder.html'; 
        config.filebrowserImageBrowseUrl = p+'ckfinder/ckfinder.html?type=Images';
        config.filebrowserFlashBrowseUrl = p+'ckfinder/ckfinder.html?type=Flash';
        config.filebrowserUploadUrl =p+'ckfinder/core/connector/java/connector.java?command=QuickUpload&type=Files';
        config.filebrowserImageUploadUrl =p+'ckfinder/core/connector/java/connector.java?command=QuickUpload&type=Images';
        config.filebrowserFlashUploadUrl = p+'ckfinder/core/connector/java/connector.java?command=QuickUpload&type=Flash';
};

6. web.xmlに次のコードを追加します。

<サーブレット>
        <servlet-name>コネクタサーブレット</servlet-name>
        <サーブレットクラス>com.ckfinder.connector.ConnectorServlet</サーブレットクラス>
        <初期化パラメータ>
            <説明>
                設定ファイルへのパスはアプリケーション内の相対パスにすることができます。
                ローカル ファイル システム上の絶対パスまたは UNC パス。
            </説明>
            <param-name>XMLConfig</param-name>
            <パラメータ値>/WEB-INF/ckfinder.xml</パラメータ値>
        </init-param>
        <初期化パラメータ>
            <param-name>デバッグ</param-name>
            <param-value>false</param-value>
        </init-param>
        <起動時に読み込む>1</起動時に読み込む>
    </サーブレット>
    <サーブレットマッピング>
        <servlet-name>コネクタサーブレット</servlet-name>
        <url-pattern><!--このパスは、プロジェクトの下の ckfinder フォルダーを見つけるために使用できます-->
            コネクタは、次の例のように、
        </url-パターン>
    </サーブレットマッピング>

7. 実行して効果を確認します。

Ckeditor+Ckfinder を使用して JavaScript でファイルをアップロードする場合の詳細な説明については、この記事で終わります。Ckeditor+Ckfinder を使用して JavaScript でファイルをアップロードする場合の関連コンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • js に基づいて大きなファイルのアップロードとブレークポイントの再開を管理する方法
  • Node.jsはexpress-fileuploadミドルウェアを使用してファイルをアップロードします
  • jQuery は非同期ファイルアップロードを実装します ajaxfileupload.js
  • JavaScript ベースの大容量ファイルアップロードのバックエンドコード例
  • JSはブレークポイントを使用してファイルのアップロードを再開し、コード分析を実現できます。
  • JSのFormDataクラスはファイルのアップロードを実装します
  • JSのFileReaderクラスは、ファイルアップロードのタイムリーなプレビュー機能を実装します。
  • ファイルアップロードスタイルの詳細を実装するjs

<<:  MySQL 学習のまとめ: InnoDB ストレージ エンジンのアーキテクチャ設計の予備的な理解

>>:  Thinkpad VMware に仮想マシンをインストールすると、「このホストは Intel VT-x をサポートしていますが、Intel VT-x は無効になっています」というメッセージが表示される (問題解決)

推薦する

Nginx でアンチホットリンクを設定するための手順を完了する

必要:通常、サイト側は、ウェブサイト上の動画や写真が盗まれるのを防ぎたいと考えています。結局のところ...

ウェブフォームデザインのための5つの実用的なヒント

1. フォームテキスト入力のモバイル選択: テキスト入力フィールドにプロンプ​​トが追加されている場...

Win10でのMySQL5.7.17無料インストール版の基本設定チュートリアルについて(画像とテキスト付き)

データベース アプリケーションは、アプリケーション システムに不可欠な部分です。リレーショナル デー...

CSS スタイルの競合を解決するいくつかの方法 (要約)

1. セレクターを調整するコンビネータを使用すると、セレクターの説明をより正確に記述できます (C...

MySQLのlike演算子の詳細

1. はじめに不明な値または部分的に既知の値をフィルタリングする場合は、like 演算子を使用でき...

Vueカスタムディレクティブを使用してドラッグアンドドロッププラグインを構築する方法

HTML5 のドラッグ アンド ドロップ機能は誰もが知っていますが、これを使用するとドラッグ アンド...

Zabbix設定 DingTalkアラーム機能実装コード

必要Zabbix で DingTalk アラームを設定する方法は、Prometheus で Ding...

CSS で「プラス記号」効果を実装するためのサンプルコード

以下に示すプラス記号の効果を実現するには: この効果を実現するには、div 要素だけが必要です。 b...

Hadoop におけるネームノードとセカンダリネームノードの動作メカニズムの説明

1) プロセス 2) FSImageと編集NodeNode は HDFS の頭脳です。ファイルシステ...

MySQL スロークエリを通じて MySQL のパフォーマンスを最適化する方法

アクセス数が増えると、MySQL データベースへの負荷が増大します。MySQL アーキテクチャを使用...

Reactの状態管理の3つのルールのまとめ

目次序文No.1 焦点No.2 複雑な状態ロジックの抽出No.3 複数状態操作の抽出要約する序文Re...

iframeフレームはIEブラウザで白い背景を透明に設定します

最近、プロジェクトを進める過程で、ページの階層構造を描画するために iframe を頻繁に使用する必...

Ubuntu 18.04 に opencv 3.2.0 をインストールするためのソリューション

opencv.zip をダウンロード依存関係を事前にインストールします。まずダウンロードソースを更新...

jQueryカルーセル機能を実装する方法

この記事では、jQueryカルーセル機能の実装コードを参考までに共有します。具体的な内容は次のとおり...

Linux サーバー上で複数の SVN リポジトリを構成するプロセスの詳細な説明

1. 指定されたディレクトリにリポジトリを作成し、ディレクトリ全体を保存してください。この記事のサン...