>웹 프론트엔드 >JS 튜토리얼 >nodejs+express를 사용하여 간단한 파일 업로드 기능을 구현하는 방법에 대한 자세한 설명

nodejs+express를 사용하여 간단한 파일 업로드 기능을 구현하는 방법에 대한 자세한 설명

小云云
小云云원래의
2017-12-27 14:03:252500검색

이 글은 nodejs+express를 이용한 간단한 파일 업로드 기능을 주로 소개하고 있으니, 필요하신 분들은 참고하시면 도움이 될 것 같습니다.

1. Express 프로젝트 생성

express -e nodejs-uploadfile


2. multer middleware

npm i multer or yarn multer


3도 참조하세요. fs 모듈을 사용하여 파일 업로드 디렉터리를 지정합니다

const multer = require('multer');
const fs = require('fs');
const UPLOAD_PATH = './uploads'

단일 파일 업로드: index.html의 파일은 다음과 같습니다(양식 파일 유형은 enctype="multipart/form-data"여야 함),

<form action="/upload" method="post" enctype="multipart/form-data">
 <input name="fileUpload" type="file" />
 <img src="" alt="">
 <button type="submit">上传</button>
</form>

routes/index.js에 업로드 경로를 추가하여 파일 업로드 작업을 처리하세요

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;
  });
 });
 })
})

업로드된 파일이 이미지인 경우 FileReader 개체를 사용하여 이미지를 미리 볼 수도 있습니다

(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))

다중 파일 업로드 : 다중 파일 업로드의 원칙은 단일 파일 업로드와 동일합니다. 코드는 다음과 같습니다.

router.post(&#39;/upload&#39;, upload.array(&#39;fileUpload&#39;), function (req, res, next) {
 const files = req.files;
 const response = [];
 const result = new Promise((resolve, reject) => {
 files.map((v) => {
  fs.readFile(v.path, function(err, data) {
  fs.writeFile(`${UPLOAD_PATH}/${v.originalname}`, data, function(err, data) {
   const result = {
   file: v,
   }
   if (err) reject(err);
   resolve(&#39;成功&#39;);
  })
  })
 })
 })
 result.then(r => {
 res.json({
  msg: &#39;上传成功&#39;,
 })
 }).catch(err => {
 res.json({ err })
 });
})

관련 코드는 github.com/bWhirring/n…

관련 권장 사항:


node.js multer를 사용한 Ajax에 대한 자세한 설명 파일 업로드 기능 구현

thinkjs 파일 업로드 기능을 설명하는 예

j업로드하기 전에 이미지 파일의 미리보기 기능을 구현하는 쿼리

위 내용은 nodejs+express를 사용하여 간단한 파일 업로드 기능을 구현하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.