Vueはvue-quill-editorリッチテキストエディタを使用し、画像をサーバーにアップロードします。

Vueはvue-quill-editorリッチテキストエディタを使用し、画像をサーバーにアップロードします。

1. 準備

vue-quill-editor をダウンロード

npm install vue-quill-editor --save または yarn add vue-quill-editor

2. グローバルコンポーネント quill-editor を定義する

vue-quill-editorをダウンロードしたら、グローバルコンポーネントを定義し、quill-editorという名前を付ける必要があります。

1. テンプレートを定義する

<div>
 <クイルエディター
 v-model="値"
 ref="myQuillEditor"
 :options="エディターオプション"
 @change="onEditorChange"
 >
 </quill-editor>
 <input type="file" hidden accept=".jpg,.png" ref="fileBtn" @change="handleChange" />
</div>

2. リッチテキストオプションの設定を定義する

エディターオプション: {
 ツールバー: [
 ['太字', '斜体', '下線'], // 太字、斜体、下線、取り消し線、'取り消し線'
 ['blockquote', 'code-block'], //引用、コードブロック [{ 'header': 1 }, { 'header': 2 }], //H1 H2
 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : :
}

3. 関連する方法

1. オリジナルのリッチテキストエディタのアップロード画像バインディング方法を変更する

マウント() {
 (this.$refs.myQuillEditor)の場合{
 //myQuillEditor を独自のものに変更します。this.$refs.myQuillEditor.quill.getModule("toolbar").addHandler("image", this.imgHandler);
 }
},
方法:{
 imgHandler(状態) {
 if (状態) {
 		//入力のクリックをトリガーし、fileBtn を独自の this.$refs.fileBtn.click() に置き換えます。
 }
 }
}

2. イベントをアップロードする

ハンドル変更(e) {
 const files = Array.prototype.slice.call(e.target.files);
 if (!ファイル) {
 戻る;
 }
 formdata = new FormData();
 formdata.append("file_name", files[0].name);
 formdata.append("imgs", ファイル[0]);
 //axiosリクエストを使用する this.axios({
 url: this.$store.state.baseUrl + 'upload/ueditorFile',
 メソッド: 'post'、
 データ: フォームデータ、
 ヘッダー: {'client-identity': localStorage.getItem('session_id')}
 }).then((res) => {
 	//ここで空に設定すると、同じ写真をアップロードするときに変更イベントがトリガーされます。this.$refs.fileBtn.value = "";
 (res.data.code == 200)の場合{
  選択範囲を this.$refs.myQuillEditor.quill.getSelection() とします。
  // これは返された画像アドレスです。インターフェイスがアクセス可能なアドレスを返さない場合は、自分で連結する必要があります。let imgUrl = this.$store.state.baseUrl + res.data.data; 
  imgUrl = imgUrl.replace(/\\/g,"/") 
			//羽根ペンのカーソルを取得して画像を挿入します this.$refs.myQuillEditor.quill.insertEmbed(selection != null ? selection.index : 0, 'image', imgUrl)   
			//挿入が完了すると、カーソルが 1 つ前に戻ります this.$refs.myQuillEditor.quill.setSelection(selection.index + 1);
 } 
 })
}

最後に、このグローバル quill コンポーネントを親コンポーネントで使用し、必要な関連パラメータを渡すと完了です。

これで、vue で vue-quill-editor リッチ テキスト エディターを使用して画像をサーバーにアップロードする方法についての説明は終わりです。vue-quill-editor を使用して画像をサーバーにアップロードすることに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後も 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Vueは添付ファイルのアップロード機能を実装しました
  • Spring+Vue は UEditor リッチテキストを統合して画像添付ファイルをアップロードします
  • Vue パッケージアップロードサーバー更新 404 問題に対する 2 つの解決策
  • Vue+element+oss はフロントエンドのフラグメントアップロードとブレークポイント再開を実現します
  • vue-simple-uploader をベースに、ファイルセグメントアップロード、インスタントアップロード、ブレークポイント再開のグローバルアップロードプラグイン機能をカプセル化します。
  • Vue フォームのポストリクエストとサーブレットを組み合わせてファイルアップロード機能を実現する
  • Vue2をベースにモバイル画像アップロード、圧縮、ドラッグアンドドロップソート、ドラッグアンドドロップ削除機能を実現
  • vue+vantで写真をアップロードする際の注意点
  • Vueは写真を切り取ってアップロードすることを実現
  • Vueで複数の添付ファイルをアップロードする実装例

<<:  VUEをベースにしたシンプルな学生情報管理システムの実装

>>:  Vueはキー表示のショートカットキー効果を取得する入力コンポーネントを実装します

推薦する

CSSは高さを設定せずにdivを完全に中央に配置することを実現します

必要とする本文の下のdivは垂直方向に中央揃えになっていますdiv 内のテキストを垂直中央に配置する...

Linux システムで Centos7 を使って ElasticSearch ミドルウェアと共通インターフェースを構築するデモ

1. ミドルウェアの紹介1. 基本概念ElasticSearch は Lucene をベースにした検...

vue+element を使用した Google プラグインの開発プロセス全体

シンプルな機能: ブラウザの右上隅にあるプラグイン アイコンをクリックすると小さなポップアップ ウィ...

Docker イメージのエクスポート、インポート、コピーの例の分析

最初の解決策は、イメージを公開イメージリポジトリにプッシュし、それをプルダウンすることです。 2 番...

MySQL の文字セットの不一致によって発生する異常な接続テーブルの解決方法

目次1. 解決策2. MySQLの文字セット文字セット検証ルール次のように簡単なテーブルクエリを実行...

vue+el-element でファイル名に応じてダイアログを動的に作成する実践

目次背景成し遂げる1. カプセル化された /utils/dialogControl.js 2.ダイア...

LINUX でプロセスを表示する 4 つの方法 (要約)

プロセスは CPU とメモリ内で実行されるプログラム コードであり、各プロセスは 1 つ以上のプロセ...

M1 チップに MySQL 8.0 データベースをインストールする方法 (画像とテキスト)

1. ダウンロードまず、MySQLの国内ミラーをお勧めします。特に速いわけではありませんが、それで...

要素テーブルテーブルコンポーネントの複数フィールド(複数列)ソート方法

目次必要:発生した問題:解決する:必要:要素テーブル内の複数の列を並べ替えるには、日付の並べ替えをク...

Vueインスタンスで$refsを使用する際の注意点

開発の過程では、インスタンスの vm.$refs(this.$refs) を使用して、ref で登録...

Docker を使用して Nginx+Flask+Mongo アプリケーションをデプロイする

サーバーにはNginx、データベースサポートにはMongo、Python言語のWebフレームワークに...

Docker プライベートリポジトリの管理とローカルリポジトリ内のイメージの削除

1: Dockerプライベートウェアハウスのインストール1. イメージリポジトリからイメージをダウン...

CSS で波の効果を作成するためのアイデア

以前、純粋な CSS を使用して波の効果を実現する方法をいくつか紹介しました。それらについては、次の...

Vue プラグイン エラー: このページで Vue.js が検出されました。問題は解決しました

Vue プラグインがエラーを報告しました: このページで Vue.js が検出されましたVueプラグ...

HTMLのマーキータグは、シームレスなスクロールマーキー効果を実現します。

<marquee> タグはペアで表示されるタグです。最初のタグ <marquee...