Учебник по Node.js

ГЛАВНАЯ СТРАНИЦА Node.js Введение в Node.js Node.js Начало работы Модули Node.js HTTP-модуль Node.js Файловая система Node.js URL-модуль Node.js Node.js NPM События Node.js Загрузить файлы Node.js Электронная почта Node.js

Node.js MySQL

Начать работу с MySQL MySQL Создать базу данных MySQL Создать таблицу MySQL вставить в MySQL выбрать из MySQL Где Порядок MySQL MySQL Удалить Таблица удаления MySQL Обновление MySQL Лимит MySQL MySQL присоединиться

Node.js MongoDB

Начать работу с MongoDB MongoDB Создать базу данных MongoDB Создать коллекцию Вставка MongoDB MongoDB Найти Запрос MongoDB Сортировка MongoDB MongoDB Удалить Коллекция MongoDB Drop Обновление MongoDB Лимит MongoDB Присоединиться к MongoDB

Малиновый Пи

Начать работу с RasPi Введение в RasPi GPIO Мигающий светодиод RasPi Светодиод RasPi и кнопка Проточные светодиоды RasPi Веб-сокет RasPi Веб-сокет со светодиодной подсветкой RasPi RGB Компоненты RasPi

Справочник по Node.js

Встроенные модули

Загрузить файлы Node.js


Грозный модуль

Есть очень хороший модуль для работы с закачкой файлов, называется "Грозный".

Модуль Formidable можно загрузить и установить с помощью NPM:

C:\Users\Your Name>npm install formidable

После того, как вы загрузили модуль Formidable, вы можете включить его в любое приложение:

var formidable = require('formidable');

Загрузить файлы

Теперь вы готовы создать веб-страницу в Node.js, которая позволит пользователю загружать файлы на ваш компьютер:

Шаг 1: Создайте форму загрузки

Создайте файл Node.js, который записывает HTML-форму с полем загрузки:

Пример

Этот код создаст HTML-форму:

var http = require('http');

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.write('<form action="fileupload" method="post" enctype="multipart/form-data">');
  res.write('<input type="file" name="filetoupload"><br>');
  res.write('<input type="submit">');
  res.write('</form>');
  return res.end();
}).listen(8080);

Шаг 2: Разберите загруженный файл

Включите модуль Formidable, чтобы иметь возможность анализировать загруженный файл, как только он достигнет сервера.

Когда файл загружен и проанализирован, он помещается во временную папку на вашем компьютере.

Пример

Файл будет загружен и помещен во временную папку:

var http = require('http');
var formidable = require('formidable');

http.createServer(function (req, res) {
  if (req.url == '/fileupload') {
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
      res.write('File uploaded');
      res.end();
    });
  } else {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write('<form action="fileupload" method="post" enctype="multipart/form-data">');
    res.write('<input type="file" name="filetoupload"><br>');
    res.write('<input type="submit">');
    res.write('</form>');
    return res.end();
  }
}).listen(8080);


Шаг 3: Сохраните файл

Когда файл успешно загружен на сервер, он помещается во временную папку.

Путь к этому каталогу можно найти в объекте «files», который передается в качестве третьего аргумента в parse()функцию обратного вызова метода.

Чтобы переместить файл в папку по вашему выбору, используйте модуль файловой системы и переименуйте файл:

Пример

Включите модуль fs и переместите файл в текущую папку:

var http = require('http');
var formidable = require('formidable');
var fs = require('fs');

http.createServer(function (req, res) {
  if (req.url == '/fileupload') {
    var form = new formidable.IncomingForm();
    form.parse(req, function (err, fields, files) {
      var oldpath = files.filetoupload.filepath;
      var newpath = 'C:/Users/Your Name/' + files.filetoupload.originalFilename;
      fs.rename(oldpath, newpath, function (err) {
        if (err) throw err;
        res.write('File uploaded and moved!');
        res.end();
      });
 });
  } else {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write('<form action="fileupload" method="post" enctype="multipart/form-data">');
    res.write('<input type="file" name="filetoupload"><br>');
    res.write('<input type="submit">');
    res.write('</form>');
    return res.end();
  }
}).listen(8080);