ホームページ ウェブフロントエンド jsチュートリアル 画像をデータベースにアップロードし、Vueで実装したページに表示する例

画像をデータベースにアップロードし、Vueで実装したページに表示する例

May 29, 2018 pm 04:07 PM
vue 画像をアップロードする データベース 見せる

この記事では、vue で実装された画像をデータベースにアップロードしてページに表示する機能を主に、vue.js をベースにしたデータベース操作とページ画像表示関連の操作スキルをサンプル形式で紹介します。この記事の例を参照してください

画像をデータベースにアップロードし、vueで実装されたページに表示する機能について説明します。参考のためにみんなと共有してください。詳細は次のとおりです:

1. クリックして画像をアップロードすると、画像選択オプション ボックスが表示されます。

ページコード:

1

2

3

<p class="form-signin-heading" id="btnUpload" @change="upload">上传图片</p>

<input type="file" name="avatar" id="avatar" multiple="multiple" @change="upload">

<img :src="&#39;http://localhost:8888&#39;+item.photos_url" alt=""/>

ログイン後にコピー

アップロードした画像のスタイルを設定したいので、入力を非表示にし、入力のクリックイベントをpボックスに送信するために次の操作を実行します:

1

2

3

4

5

6

7

mounted: function () {

 var upload = document.getElementById("btnUpload");

 var avatar = document.getElementById("avatar");

 upload.onclick =function(){

  avatar.click(); //注意IE的兼容性

 };

}

ログイン後にコピー

2に2を追加します。 API インターフェースのコントローラー層 ファイルに、次のように名前を付けます:

upFile.js

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

let multer=require(&#39;multer&#39;);

let storage = multer.diskStorage({

  //设置上传后文件路径,uploads文件夹会自动创建。

  destination: function (req, file, cb) {

    cb(null, &#39;./public/uploads&#39;)

  },

  //给上传文件重命名,获取添加后缀名

  filename: function (req, file, cb) {

    let fileFormat = (file.originalname).split(".");

    cb(null, file.fieldname + &#39;-&#39; + Date.now() + "." + fileFormat[fileFormat.length - 1]);

  }

});

//添加配置文件到multer对象。

let upload = multer({

  storage: storage

});

module.exports = upload;

ログイン後にコピー

upFileController.js

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

var muilter = require(&#39;./upFile.js&#39;);

//multer有single()中的名称必须是表单上传字段的name名称。

var upload=muilter.single(&#39;file&#39;);

function dataInput(req, res) {

  upload(req, res, function (err) {

    //添加错误处理

    if (err) {

      return console.log(err);

    }

    //文件信息在req.file或者req.files中显示。

    let photoPath = req.file.path;

    photoPath = photoPath.replace(/public/,"");//将文件路径中的public\去掉,否则会和静态资源配置冲突

    //将photoPath存入数据库即可

    console.log(photoPath);

    res.send(photoPath);

  });

}

module.exports = {

  dataInput

};

ログイン後にコピー

3. 画像のアドレスをページ上のデータベースに保存します

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

upload: function (e) {

    var that = this;

    let formData = new window.FormData();

    let file = e.target.files[0];

    formData.append(&#39;file&#39;,file);//通过append向form对象添加数据

    //利用split切割,拿到上传文件的格式

    var src = file.name,

     formart = src.split(".")[1];

    //使用if判断上传文件格式是否符合

    if (formart == "jpg" || formart == "png" ||

     formart == "docx" || formart == "txt" ||

     formart == "ppt" || formart == "xlsx" ||

     formart == "zip" || formart == "rar" ||

     formart == "doc") {

     //只有满足以上格式时,才会触发ajax请求

     this.$axios.post(this.$api.personalCenter.upFile,formData).then(function (res) {

      that.upFileData = res.data;

     }).then(function (res) {

      var params = {

       photos_url: that.upFileData,

       photo_des: &#39;&#39;

      };

//      console.log(params.photos_url,&#39;photos_url&#39;)

      that.$axios.post(that.$api.personalCenter.wallAdd,qs.stringify(params)).then(function (res) {

       console.log(res.data);

       that.$options.methods.imgList.bind(that)();

      }).catch(function (err) {

       console.log(err);

       console.log("请求出错");

      })

     })

    } else {

     alert("文件格式不支持上传");

    }

}

ログイン後にコピー

上記は私が皆さんのためにまとめたものは、将来的に皆さんのお役に立つことを願っています。

関連記事:

複雑なjsonパラメータをコントローラに渡すspirngmvc jsのインスタンス

Vue.jsのフォーム制御操作まとめ

jsの配列パラメータをバックグラウンドコントローラに渡す方法

以上が画像をデータベースにアップロードし、Vueで実装したページに表示する例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

VUEのボタンに関数を追加する方法 VUEのボタンに関数を追加する方法 Apr 08, 2025 am 08:51 AM

HTMLテンプレートのボタンをメソッドにバインドすることにより、VUEボタンに関数を追加できます。 VUEインスタンスでメソッドを定義し、関数ロジックを書き込みます。

MySQL:簡単な学習のためのシンプルな概念 MySQL:簡単な学習のためのシンプルな概念 Apr 10, 2025 am 09:29 AM

MySQLは、オープンソースのリレーショナルデータベース管理システムです。 1)データベースとテーブルの作成:createdatabaseおよびcreateTableコマンドを使用します。 2)基本操作:挿入、更新、削除、選択。 3)高度な操作:参加、サブクエリ、トランザクション処理。 4)デバッグスキル:構文、データ型、およびアクセス許可を確認します。 5)最適化の提案:インデックスを使用し、選択*を避け、トランザクションを使用します。

MySQL:世界で最も人気のあるデータベースの紹介 MySQL:世界で最も人気のあるデータベースの紹介 Apr 12, 2025 am 12:18 AM

MySQLはオープンソースのリレーショナルデータベース管理システムであり、主にデータを迅速かつ確実に保存および取得するために使用されます。その実用的な原則には、クライアントリクエスト、クエリ解像度、クエリの実行、返品結果が含まれます。使用法の例には、テーブルの作成、データの挿入とクエリ、および参加操作などの高度な機能が含まれます。一般的なエラーには、SQL構文、データ型、およびアクセス許可、および最適化の提案には、インデックスの使用、最適化されたクエリ、およびテーブルの分割が含まれます。

VueのDivにジャンプする方法 VueのDivにジャンプする方法 Apr 08, 2025 am 09:18 AM

VUEにDIV要素をジャンプするには、VUEルーターを使用してルーターリンクコンポーネントを追加するには、2つの方法があります。 @clickイベントリスナーを追加して、これを呼び出します。$ router.push()メソッドをジャンプします。

Vueにタグをジャンプする方法 Vueにタグをジャンプする方法 Apr 08, 2025 am 09:24 AM

VUEでタグのジャンプを実装する方法には、HTMLテンプレートでAタグを使用してHREF属性を指定する方法が含まれます。 VUEルーティングのルーターリンクコンポーネントを使用します。 JavaScriptでこれを使用します。$ router.push()メソッド。パラメーターはクエリパラメーターに渡すことができ、ルートは動的ジャンプのルーターオプションで構成されています。

なぜMySQLを使用するのですか?利点と利点 なぜMySQLを使用するのですか?利点と利点 Apr 12, 2025 am 12:17 AM

MySQLは、そのパフォーマンス、信頼性、使いやすさ、コミュニティサポートに選択されています。 1.MYSQLは、複数のデータ型と高度なクエリ操作をサポートし、効率的なデータストレージおよび検索機能を提供します。 2.クライアントサーバーアーキテクチャと複数のストレージエンジンを採用して、トランザクションとクエリの最適化をサポートします。 3.使いやすく、さまざまなオペレーティングシステムとプログラミング言語をサポートしています。 4.強力なコミュニティサポートを提供し、豊富なリソースとソリューションを提供します。

React vs. Vue:Netflixはどのフレームワークを使用していますか? React vs. Vue:Netflixはどのフレームワークを使用していますか? Apr 14, 2025 am 12:19 AM

netflixusesaCustomframeworkは、「ギボン」ビルトンリアクト、notreactorvuedirectly.1)チームエクスペリエンス:seice basedonfamperivity.2)projectomplerprojects:vueforsplerprojects、racefforcomplexones.3)customeforsneeds:reactofforsmorefloficailie.

Netflixのフロントエンド:React(またはVue)の例とアプリケーション Netflixのフロントエンド:React(またはVue)の例とアプリケーション Apr 16, 2025 am 12:08 AM

Netflixは、Reactをフロントエンドフレームワークとして使用します。 1)Reactのコンポーネント開発モデルと強力なエコシステムが、Netflixがそれを選択した主な理由です。 2)コンポーネント化により、Netflixは複雑なインターフェイスをビデオプレーヤー、推奨リスト、ユーザーコメントなどの管理可能なチャンクに分割します。 3)Reactの仮想DOMおよびコンポーネントライフサイクルは、レンダリング効率とユーザーインタラクション管理を最適化します。

See all articles