ホームページ > ウェブフロントエンド > jsチュートリアル > nodejs+expressを使った簡易ファイルアップロード機能の実装について詳しく解説

nodejs+expressを使った簡易ファイルアップロード機能の実装について詳しく解説

小云云
リリース: 2017-12-27 14:03:25
オリジナル
2527 人が閲覧しました

この記事では主にnodejs+expressを使った簡単なファイルアップロード機能を紹介しますので、必要な方は参考にしていただければ幸いです。

1.Expressプロジェクトを作成します


express -e nodejs-uploadfile
ログイン後にコピー

2.routes/index.jsのmulterも参照します。 fsモジュールを作成し、ファイルアップロードディレクトリを指定します


npm i multer or yarn multer
ログイン後にコピー

単一ファイルアップロード:index.html内のファイルは次のとおりです(フォームファイルのタイプはenctype="multipart/form-data"である必要があります)、

const multer = require('multer');
const fs = require('fs');
const UPLOAD_PATH = './uploads'
ログイン後にコピー

ファイルのアップロード操作を処理するために、routes/index.jsにアップロードルートを追加します

<form action="/upload" method="post" enctype="multipart/form-data">
 <input name="fileUpload" type="file" />
 <img src="" alt="">
 <button type="submit">上传</button>
</form>
ログイン後にコピー

アップロードされたファイルが画像の場合、FileReaderオブジェクトを使用して画像をプレビューすることもできます

router.post(&#39;/upload&#39;, upload.single(&#39;fileUpload&#39;), function (req, res, next) {
 const { file } = req;
 fs.readFile(file.path, function(err, data) {
 fs.writeFile(`${UPLOAD_PATH}/${file.originalname}`, data, function (err) {
  if (err) res.json({ err })
  res.json({
  msg: &#39;上传成功&#39;
  });
 });
 })
})
ログイン後にコピー

複数ファイルのアップロード: 複数ファイルのアップロードの原理は、単一ファイルのアップロードの原理と同じです:

(function($){
 $(&#39;input&#39;).on(&#39;change&#39;, function(event) {
 var files = event.target.files,
  reader = new FileReader();
 if(files && files[0]){
  reader.onload = function (ev) {
   $(&#39;img&#39;).attr(&#39;src&#39;, ev.target.result);
  }
  reader.readAsDataURL(files[0]);
 }
 })
}(jQuery))
ログイン後にコピー

関連するコードは github.com/bWhirring/n…
にあります。

関連する推奨事項:


node.js multerを使用したAjaxの詳細な説明ファイルアップロード機能を実現

thinkjsのファイルアップロード機能を説明する例

jQueryはアップロード前の画像ファイルのプレビュー機能を実現

以上がnodejs+expressを使った簡易ファイルアップロード機能の実装について詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート