nodejs+express에서 파일 업로드를 구현하는 방법

亚连
풀어 주다: 2018-06-15 11:22:17
원래의
1499명이 탐색했습니다.

이 글에서는 nodejs+express를 이용한 간단한 파일 업로드 기능을 주로 소개합니다. 필요하신 분들은 참고하시면 됩니다

1. Express 프로젝트 만들기

express -e nodejs-uploadfile
로그인 후 복사

2. multer middleware 다운로드

npm i multer or yarn multer
로그인 후 복사

3. routes/index.js의 multer 파일 작업도 사용해야 하므로 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 })
 });
})
로그인 후 복사

위는 제가 컴파일한 것입니다. 모두를 위해. 앞으로 모든 사람에게 도움이 되기를 바랍니다.

관련 글:

JavaScript에서 배열에 변수 이름이 있는지 확인하는 방법

JS를 통해 지연 숨기기 기능 구현

Angular를 사용하여 타이머 기능 구현하는 방법

방법 각도 화살표 표시 기능을 사용하여 삼각형 구현

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿