Vue でファイル アップロードを実装するための完全なガイド (axios、element-ui)
Vue でファイル アップロードを実装するための完全なガイド (axios、element-ui)
最新の Web アプリケーションでは、ファイル アップロードは基本機能になっています。アバター、写真、ドキュメント、ビデオのいずれをアップロードする場合でも、ユーザーのコンピュータからサーバーにファイルをアップロードするための信頼できる方法が必要です。
この記事では、Vue、axios、element-ui を使用してファイルのアップロードを実装する方法について詳細なガイドを提供します。
- axios とは
axios は、ブラウザーおよびnode.js 用の Promise ベースの HTTP クライアントです。 IE8 以降だけでなく、最新のブラウザもすべてサポートしています。さらに、axios は、多くの一般的な XHR リクエストと API の多くの詳細をエレガントに処理します。 axios を使用すると、ファイル アップロード機能を簡単に実装できます。
- element-ui で基本的なページとフォームを作成する
まず、基本的なページとフォームを作成しましょう。 element-ui を使用して単純なフォームを構築し、ユーザーがアップロードしたファイルを収集します。
<template> <div class="upload-form"> <el-upload :action="serverUrl" :on-success="uploadSuccess" :headers="headers" :before-upload="beforeUpload" :on-error="uploadError"> <el-button size="small" type="primary">点击上传</el-button> <div slot="tip" class="upload-tip">只能上传jpg/png文件,且不超过2MB</div> </el-upload> </div> </template> <script> export default { data () { return { serverUrl: '/api/upload', headers: { 'Content-Type': 'multipart/form-data' } } }, methods: { beforeUpload (file) { const isJPG = file.type === 'image/jpeg' || file.type === 'image/png' const isLt2M = file.size / 1024 / 1024 < 2 if (!isJPG) { this.$message.error('上传头像图片只能是 JPG/PNG 格式!') } if (!isLt2M) { this.$message.error('上传头像图片大小不能超过 2MB!') } return isJPG && isLt2M }, uploadSuccess (response) { console.log(response.data) this.$message.success('头像上传成功!') }, uploadError (error) { console.log(error) this.$message.error('上传头像图片失败!') } } } </script> <style scoped> .upload-form { margin-top: 20px; text-align: center; } .upload-tip { margin-top: 10px; color: #999; } </style>
ここでは、element-ui のアップロード コンポーネントを使用し、アップロード関連の設定とイベントをいくつか定義します。ユーザーがファイルを選択してアップロード ボタンをクリックすると、次の操作が実行されます。
- アップロードする前に、渡されたファイル オブジェクトから画像のタイプとファイル サイズを確認します。要件を満たしていません アップロードを禁止し、ユーザーにエラー メッセージを表示します;
- アップロードが成功すると、応答データを出力し、アップロード成功のメッセージをユーザーに送信します;
- アップロードに失敗した場合はエラーを出力し、ユーザーにエラーメッセージを送信します。
- ファイルのアップロードを実装する Vue コンポーネント
ユーザーがアップロードしたファイルを収集するための簡単なフォームを作成したので、次にファイルをアップロードする必要があります。サーバーに。このタスクには axios を使用します。
<template> <!-- 这里插入上一部分的代码 --> </template> <script> import axios from 'axios' export default { data () { return { serverUrl: '/api/upload', headers: { 'Content-Type': 'multipart/form-data' } } }, methods: { beforeUpload (file) { const isJPG = file.type === 'image/jpeg' || file.type === 'image/png' const isLt2M = file.size / 1024 / 1024 < 2 if (!isJPG) { this.$message.error('上传头像图片只能是 JPG/PNG 格式!') } if (!isLt2M) { this.$message.error('上传头像图片大小不能超过 2MB!') } return isJPG && isLt2M }, uploadSuccess (response) { console.log(response.data) this.$message.success('头像上传成功!') }, uploadError (error) { console.log(error) this.$message.error('上传头像图片失败!') }, uploadFile (file) { const formdata = new FormData() formdata.append('file', file) axios.post(this.serverUrl, formdata, { headers: this.headers }).then((response) => { this.uploadSuccess(response) }).catch((error) => { this.uploadError(error) }) } } } </script> <style scoped> <!-- 这里插入上一部分的代码 --> </style>
上記のコードでは、axios を導入し、ファイルをアップロードするためのメソッド UploadFile を定義しました。このメソッドでは、まず FormData インスタンスを作成し、リクエストとともにファイルをサーバーに送信します。次に、axios.post メソッドを呼び出してファイルをサーバーにアップロードします。応答が成功または失敗した場合、対応する応答関数を呼び出して成功またはエラー メッセージをユーザーに送信します。
- Vue アプリケーションでのファイル アップロード コンポーネントの使用
アップロード機能を備えたコンポーネントを作成したので、それを Vue アプリケーションに統合します。
<template> <div> <NavigationBar /> <!-- 插入导航栏组件代码 --> <UploadForm /> <!-- 插入上传表单组件代码 --> </div> </template> <script> import NavigationBar from './components/NavigationBar.vue' import UploadForm from './components/UploadForm.vue' export default { components: { NavigationBar, UploadForm } } </script>
ここでは、NavigationBar コンポーネントと UploadForm コンポーネントを紹介し、メインの Vue コンポーネントのテンプレートに配置します。
- バックエンド サーバー
最後に、アップロードされたファイルを受け入れてサーバーに保存するバックエンド サーバーが必要です。以下は簡単な Express サーバーの例です。
const express = require('express') const bodyParser = require('body-parser') const multer = require('multer') const app = express() const upload = multer({ dest: 'uploads/' }) app.use(bodyParser.json()) app.use(bodyParser.urlencoded()) app.post('/api/upload', upload.single('file'), (req, res) => { console.log(req.file) res.status(200).json({ success: true, message: 'File uploaded successfully!' }) }) app.listen(3000, () => { console.log('Server listening on port 3000') })
この Express サーバーでは、multer ミドルウェアを使用してアップロードされたファイルを解析し、アップロード フォルダーに保存します。次に、アップロードされたファイル情報をルート ハンドラーに出力し、成功応答をクライアントに送信します。実際のニーズに応じてファイルをアップロードできます。
概要
この記事では、Vue、axios、および element-ui を使用して、ファイル アップロード機能を備えた Web アプリケーションを作成する方法を検討しました。 element-ui アップロード コンポーネントを使用してユーザーがアップロードしたファイルを収集し、axios を使用して HTTP 経由でファイルをサーバーにアップロードする方法を学びました。同時に、アップロードされたファイルを受け入れて解析するための Express サーバーを作成する方法も学びました。
これは、Vue アプリケーションにファイル アップロード機能を実装するのに役立つ詳細かつ包括的なガイドです。ご質問やご意見がございましたら、コメント欄に残してください。
以上がVue でファイル アップロードを実装するための完全なガイド (axios、element-ui)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

vue.jsでJSファイルを参照するには3つの方法があります。タグ;; mounted()ライフサイクルフックを使用した動的インポート。 Vuex State Management Libraryを介してインポートします。

Vue.jsの監視オプションにより、開発者は特定のデータの変更をリッスンできます。データが変更されたら、Watchはコールバック関数をトリガーして更新ビューまたはその他のタスクを実行します。その構成オプションには、すぐにコールバックを実行するかどうかを指定する即時と、オブジェクトまたは配列の変更を再帰的に聴くかどうかを指定するDEEPが含まれます。

vue.jsでBootstrapを使用すると、5つのステップに分かれています。ブートストラップをインストールします。 main.jsにブートストラップをインポートしますブートストラップコンポーネントをテンプレートで直接使用します。オプション:カスタムスタイル。オプション:プラグインを使用します。

vue.jsには、前のページに戻る4つの方法があります。$ router.go(-1)$ router.back()outes&lt; router-link to =&quot;/&quot; Component Window.history.back()、およびメソッド選択はシーンに依存します。

CSSアニメーションまたはサードパーティライブラリを使用して、VUEでマーキー/テキストスクロール効果を実装します。この記事では、CSSアニメーションの使用方法を紹介します。スクロールテキストを作成し、テキストを&lt; div&gt;をラップします。 CSSアニメーションを定義し、オーバーフローを設定します:非表示、幅、アニメーション。キーフレームを定義し、アニメーションの開始と終了時にtranslatex()を設定します。期間、スクロール速度、方向などのアニメーションプロパティを調整します。

Vue Devtoolsを使用してブラウザのコンソールでVueタブを表示することにより、Vueバージョンを照会できます。 NPMを使用して、「NPM List -G Vue」コマンドを実行します。 package.jsonファイルの「依存関係」オブジェクトでVueアイテムを見つけます。 Vue CLIプロジェクトの場合、「Vue -Version」コマンドを実行します。 &lt; script&gt;でバージョン情報を確認してくださいVueファイルを参照するHTMLファイルにタグを付けます。

Vue.jsには配列とオブジェクトを通過するには3つの一般的な方法があります。V-Forディレクティブは、各要素をトラバースしてテンプレートをレンダリングするために使用されます。 V-BindディレクティブをV-Forで使用して、各要素の属性値を動的に設定できます。 .mapメソッドは、配列要素を新しい配列に変換できます。
