検索
ホームページウェブフロントエンドフロントエンドQ&ANodejs はフォルダーのアップロードを実装します

はじめに

Web 開発では、ファイルのアップロードは非常に一般的な要件であり、ほとんどの Web アプリケーションにはファイルをアップロードする機能があります。一部のシナリオでは、単一のファイルではなくフォルダー全体をアップロードする必要がある場合、いくつかの特別な方法を使用する必要があります。この記事ではNode.jsを使ってフォルダーをアップロードする機能を実装する方法を紹介します。

実装手順

  1. フォームの作成

ファイルをアップロードする最初の手順は、アップロードされたファイルを含む HTML フォームを作成することです。フォルダーをアップロードするには複数のファイルをアップロードする必要があるため、複数行のテキスト入力ボックスを使用して、ユーザーがアップロードするフォルダーを選択できるようにする必要があります。以下は、サンプル HTML フォーム コードです:

<form action="/uploadFolder" method="POST" enctype="multipart/form-data">
    <input type="file" name="folder[]" multiple webkitdirectory directory>
    <input type="submit" value="上传">
</form>

上記のコードでは、複数行のテキスト入力ボックスを使用して、ユーザーがアップロードするフォルダーを選択し、name を使用して指定できるようにします。 ="folder[]" 複数のファイルの後続の処理を容易にするためのフォーム要素の名前。

  1. ルートの作成

Express アプリケーションの場合、アップロード フォルダー用の新しいルート ハンドラーを確立する必要があります。このルート ハンドラーでは、フォーム データを解析して処理するために特定のライブラリを使用する必要があります。具体的には、multer ライブラリを使用して、アップロードされたフォルダーを処理します。以下は、multer ライブラリを使用したサンプル コードです。

const express = require("express");
const multer = require("multer");

const app = express();
const upload = multer({ dest: "uploads/" });

app.post("/uploadFolder", upload.any(), (req, res) => {
    console.log(req.files);
    res.send("上传成功");
});

app.listen(3000, () => {
    console.log("应用程序已启动");
});

上記のコードでは、multer ライブラリを使用してフォーム データを処理し、アップロードされたすべてのファイルを保存します。サーバーは uploads/ ディレクトリにあります。このライブラリには、あらゆる種類のファイルのアップロードを許可することを指定する upload.any() ミドルウェア関数が含まれています。ルート ハンドラーでは、req.files オブジェクトを使用して、アップロードされたフォルダー内のすべてのファイルにアクセスできます。

  1. アップロードされたファイルの処理

Node.js の組み込みモジュールを使用して、アップロードされたファイルを処理できます。具体的には、タスクを完了するには、fs モジュールの関連関数を使用する必要があります。以下はサンプル コードです。

const fs = require("fs");

const files = req.files;
for (let i = 0; i < files.length; i++) {
    const file = files[i];
    const filePath = file.path;
    const originalName = file.originalname;
    const fileName = originalName.replace(/[^a-z0-9]/gi, "_").toLowerCase();
    const destPath = "uploads/" + fileName;
    try {
        fs.renameSync(filePath, destPath);
    } catch (err) {
        res.status(500).send('文件上传失败');
    }
}
res.send("上传成功");

上記のコードでは、最初にループして req.files オブジェクト内のすべてのファイルを読み取り、次に fs## を使用します。 # module #renameSync()関数は、各ファイルを指定されたディレクトリに移動します。ファイルを移動する前に、ファイル名の特殊文字を置き換えて新しいファイル名を生成する必要があります。ファイルの移動中にエラーが発生した場合、応答でエラー メッセージが返されます。

完全なコード
  1. 完全なサンプル コードはここで参照できます。したがって、次のコマンドを使用してアプリケーションを起動できます。
node app.js

結論

フォルダー全体のアップロードは、ユーザーがファイルをより適切に整理および管理するのに役立つ非常に便利な機能です。この記事の導入を通じて、Node.js を使用してフォルダーをアップロードする機能を実装する方法を学びました。この記事が読者のお役に立てば幸いです。

以上がNodejs はフォルダーのアップロードを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Reactの強力なコミュニティとエコシステムの利点Reactの強力なコミュニティとエコシステムの利点Apr 29, 2025 am 12:46 AM

反応の反応は、反応すること:1)即時カクセスソリューションスループラットフループラットフルフルフローアンドGithub;

モバイル開発のためのネイティブの反応:クロスプラットフォームアプリの構築モバイル開発のためのネイティブの反応:クロスプラットフォームアプリの構築Apr 29, 2025 am 12:43 AM

ReactNativeIsCosenformedeveledementBecauseDevelowSowRiteCodeOdeCodeOdeCodeandedDeployitOnMultPlatforms、ReducingDevelopmentTimeandCosts.ItOfferSnear-NativePerformance、Athrive-community、AndleverageSexistingwebdevelyments.keytomatherinere

ReactのuseState()で状態を正しく更新しますReactのuseState()で状態を正しく更新しますApr 29, 2025 am 12:42 AM

ReactのuseState()状態の正しい更新には、州の管理の詳細を理解する必要があります。 1)機能的な更新を使用して、非同期更新を処理します。 2)状態を直接変更しないように、新しい状態オブジェクトまたは配列を作成します。 3)単一の状態オブジェクトを使用して、複雑なフォームを管理します。 4)アンチシェイクテクノロジーを使用して、パフォーマンスを最適化します。これらの方法は、開発者が一般的な問題を回避し、より堅牢なReactアプリケーションを作成するのに役立ちます。

Reactのコンポーネントベースのアーキテクチャ:スケーラブルなUI開発の鍵Reactのコンポーネントベースのアーキテクチャ:スケーラブルなUI開発の鍵Apr 29, 2025 am 12:33 AM

Reactのコンポーネントアーキテクチャにより、モジュール性、再利用性、保守性を通じて、スケーラブルなUI開発を効率的にします。 1)モジュール性により、UIを独立して開発およびテストできるコンポーネントに分解できます。 2)コンポーネントの再利用性は時間を節約し、さまざまなプロジェクトの一貫性を維持します。 3)メンテナビリティにより問題のあるポジショニングと更新が容易になりますが、コンポーネントを過剰な普及と深いネスティングを回避する必要があります。

Reactによる宣言プログラミング:UIロジックの簡素化Reactによる宣言プログラミング:UIロジックの簡素化Apr 29, 2025 am 12:06 AM

Reactでは、宣言的なプログラミングは、UIの望ましい状態を記述することにより、UIロジックを簡素化します。 1)UIステータスを定義することにより、ReactはDOMの更新を自動的に処理します。 2)この方法により、コードのメンテナンスがより明確かつ容易になります。 3)しかし、国家管理の複雑さと最適化された再レンダリングに注意を払う必要があります。

Reactのエコシステムのサイズ:複雑な風景をナビゲートしますReactのエコシステムのサイズ:複雑な風景をナビゲートしますApr 28, 2025 am 12:21 AM

tonavigatereAct'somplexEcosystemively、理解を理解し、認識していることを認識していることを認識しているandweakness、およびIntegreatemtoemtoemtoemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemtemotereconceptate、その後、勾配内で測定する

どのようにReactがキーを使用してリスト項目を効率的に識別しますどのようにReactがキーを使用してリスト項目を効率的に識別しますApr 28, 2025 am 12:20 AM

RactuseSeSeSeSeSeSeSeSpiffictifideidifiedItemsbyprovidingastableidentitytoeeedelement.1)keysallowReactTotTotTotTotTotTotTotTotTotTotTotTotTotTotTotRACKESOUTRE-RENDERINGTHEENTERELIST.2)chookiniqueandstablekeys、avolididingArrayIndi​​ces.3)reforceAsificlySificlySiflovedobrovesiondanc

Reactにおける重要な問題のデバッグ:問題の特定と解決Reactにおける重要な問題のデバッグ:問題の特定と解決Apr 28, 2025 am 12:17 AM

KeysinReactarecrucialforoptimizingTherenderingProcessandDynamicListseffective.tospotandfixkey-relatedissues:1)adduniquekeystolistiTemstoavoidsissusisus、2)useuniqueidideididifiersfromdateadceSofofordiceys、3)

See all articles

ホット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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 中国語版

SublimeText3 中国語版

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

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール