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はキー表示のショートカットキー効果を取得する入力コンポーネントを実装します

推薦する

MySQL最新バージョン8.0.17解凍版インストールチュートリアル

個人的にはインストール版よりも解凍版の方がインストールしやすいと思います。早速、解凍版のインストール...

Navicat を使用してリモート Linux MySQL データベースに接続するときに発生する 10061 不明エラーの詳細な説明

Navicat を使用してリモート Linux MySQL データベースに接続すると、不明なエラー ...

Baidu 入力メソッドが API を公開、自由に移植して使用できると主張

百度入力方式の担当者は、百度入力方式のオープンAPIの最大の利点は操作が便利であることであり、プラッ...

MySQLの累積集計原理と使用例の分析

この記事では、例を使用して、MySQL 累積集計の原理と使用方法を説明します。ご参考までに、詳細は以...

MySQL可視化ツールNavicatへの接続方法

Navicatをインストールした後次のエラーが発生する場合があります: Client does no...

Alibaba Cloud CentOS 7 に yum を使用して MySQL をインストールする正しい方法 (推奨)

yum クイックインストール mysql yumリポジトリを追加する rpm -Uvh http:...

MySQL フルテキスト検索の中国語ソリューションとサンプルコード

MySQL 全文検索中国語ソリューション最近、会社のプロジェクトで、データベースで中国語を検索する機...

UniappはBaidu Voiceを使用して録音をテキストに変換する機能を実現

3日間さまざまな困難に遭遇した後、ようやくこの機能を実現しました。正常に実装できる方法を見つける前に...

固定、流動的、柔軟なウェブページレイアウトの長所と短所の分析

ウェブデザイナーを長い間悩ませてきた疑問があります。それは、固定レイアウト、流動的レイアウト、柔軟レ...

Linux ソフトウェアのインストール場所を確認する簡単な方法

1. ソフトウェアのインストールパスを確認します。 Linuxソフトウェアをインストールできる場所は...

WeChat アプレットのカスタム下部ナビゲーション バー コンポーネント

この記事の例では、WeChatアプレットの下部ナビゲーションバーコンポーネントの具体的な実装コードを...

携帯電話に GreasyFork js スクリプトをインストールするチュートリアル

目次序文1. Iceraven ブラウザ (Firefox) (Android) 2. (アンドロイ...

Windows Server 2019 IIS10.0+PHP(FastCGI)+MySQL 環境構築チュートリアル

準備1. 環境の説明:オペレーティング システム: Windows Server 2019 PHP ...

mysql5.7.19 winx64 解凍版のインストールと設定のチュートリアル

mysql 5.7.19 winx64解凍版のインストールチュートリアルを収録しました。具体的な内容...

Web ページのソース ファイルを表示できない場合はどうすればよいですか?

Q: Outlook または IE のどちらを使用している場合でも、マウスを右クリックすると、ポッ...