Multer-파일이 제출 된 후 upload.fields ()를 사용하여 파일을 처리하는 방법

Husseinfawazbc

나는 Multer를 실험 해 왔으며 Mongoose를 사용하여 MongoDB에 영화 문서를 저장하는 작업을하고있었습니다. 사용자가 하나의 입력 필드에 이미지를 제출하고 별도의 입력 필드에 비디오를 제출하게 한 후 multer의 upload.fields () 옵션을 사용하여 이러한 파일을 처리합니다.

posterImageName이 'myImage'의 파일 이름을 저장하고 trailerVideoName은 'myVideo'의 파일 이름을 저장하여 데이터베이스에서 가져올 때 이미지와 비디오를 표시 할 수 있도록합니다. 내 동영상 문서에서 이러한 파일 이름을 설정하고 데이터베이스에 저장하려고하면 다음 오류가 발생합니다. "Undefined의 'filename'속성을 읽을 수 없습니다."

내 코드는 다음과 같습니다.

const upload = multer({
    storage: multer.diskStorage({
        destination: (req, file, cb) => {
            cb(null, './public/uploads/')
        },

        filename: (req, file, cb) => {
            cb(null, `${file.fieldname}-${Date.now()}${path.extname(file.originalname)}`);
        },
    }),

    limits: {fileSize: 10000000000},
    fileFilter: (req, file, cb) => {
        // Allowed ext
        const filetypes = /jpeg|jpg|png|gif|mp4/;
        // Check ext
        const extname = filetypes.test(path.extname(file.originalname).toLowerCase());
        // Check mimetype
        const mimetype = filetypes.test(file.mimetype);

        if (mimetype && extname) {
            return cb(null, true);
        } else {
            cb('Error: Images and Videos Only')
        }

    }
})

router.post('/movies', upload.fields([{name: 'myImage'}, {name: 'myVideo'}]), (req, res) => {
    const movie = new Movie({
        title: req.body.title,
        posterImageName: req.files[0].filename,
        trailerVideoName: req.files[1].filename
    })

    movie.save((error, movie) => {
        if (error) return console.error(error);
        console.log(`${movie.title} saved to movies collection`);
    });
})

나는 upload.fields () 사용 방법에 대한 좋은 설명을 검색하려고 시도했지만 내가 본 모든 자습서 및 포럼에서 upload.single () 또는 upload.array ()에 대해 이야기하기 때문에 찾을 수 없습니다. 다른 코드가 필요하면 알려주세요. 모든 도움에 감사드립니다. :)

thammada.ts

그것은 multer README.md 문서에 언급되어 있습니다.

  // req.files is an object (String -> Array) where fieldname is the key, and the value is array of files
  //
  // e.g.
  //  req.files['avatar'][0] -> File
  //  req.files['gallery'] -> Array
  //
  // req.body will contain the text fields, if there were any

기본적으로 필드의 이름은 req.files

    const movie = new Movie({
        title: req.body.title,
        posterImageName: req.files['myImage'][0].filename,
        trailerVideoName: req.files['myVideo'][0].filename
    })

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

XSL을 사용하여 병합 한 후 여러 XML 파일의 모든 데이터를 처리하는 방법

분류에서Dev

multer를 사용하여 nodejs에 이미지를 업로드 한 후 json 파일의 이미지 URL 문제

분류에서Dev

파이썬을 사용하여 docx 파일의 제목 아래에서 텍스트를 추출하는 방법

분류에서Dev

ServeletFilter를 사용하여 Servlet 처리가 완료된 후 응답 Content-Type을 업데이트하는 방법

분류에서Dev

스크래피와 함께 파이썬을 사용하여 여러 웹 페이지 크롤링 된 데이터를 csv 파일로 출력하는 방법

분류에서Dev

우편에 표준 출력을 캡처하고 CTRL-C를 사용하여 방해하는 손상된 압축 파일을 제공합니다

분류에서Dev

git add.?를 사용하여 삭제 된 파일을 준비하지 못하도록하는 방법

분류에서Dev

노드를 사용하여 업로드 후 파일을 삭제하는 방법은 무엇입니까?

분류에서Dev

라이브 USB를 사용하여 우분투에서 삭제 된 파일을 복구하는 방법은 무엇입니까? [파일 형식 기준]

분류에서Dev

Express 4 및 Multer를 사용하여 파일을 저장하는 방법은 무엇입니까?

분류에서Dev

5 분 후에 생성 된 파일을 찾는 방법은 루트 사용자가 소유 한 하나의 하위 디렉토리를 제외합니다.

분류에서Dev

NTFS 파티션을 제거한 후 삭제 된 파일을 복구하는 방법이 있습니까?

분류에서Dev

PHP를 사용하여 zip 파일을 다운로드 한 후 '잘못된 파일'오류를 수정하는 방법은 무엇입니까?

분류에서Dev

CMD를 사용하여 트리에서 파일을 추출하는 방법

분류에서Dev

Grunt 및 / 또는 Gulp를 사용하여 여러 파일을 여러 출력으로보고 처리하는 방법 (동일한 방법)?

분류에서Dev

사용자가 multer를 사용하여 파일을 선택하지 않는 경우 양식 데이터에서 "req.file.path"를 무시하는 방법

분류에서Dev

파일 업로드 후 Django에서 AJAX를 사용하여 JavaScript와 연결된 테이블을 업데이트하는 방법은 무엇입니까?

분류에서Dev

명령 줄을 사용하여 ._ 파일 무리를 삭제하는 방법

분류에서Dev

개미를 사용하여 최신 업데이트 된 단일 파일을 복사하는 방법?

분류에서Dev

쉘 스크립트를 사용하여 삭제 된 파일 라인을 다른 파일로 리디렉션하는 방법

분류에서Dev

MapReduce를 사용하여 로그 파일을 처리하는 방법

분류에서Dev

PHP를 사용하여 xml 파일을 처리하는 더 빠른 방법

분류에서Dev

CreateProcess를 사용하여 tshark를 호출하여 캡처 파일을 txt로 변환하는 방법

분류에서Dev

git이 새 파일을 이동 된 파일이 아닌 새 파일로 처리하도록 강제하는 방법은 무엇입니까?

분류에서Dev

Class <T>를 사용하여 중첩 된 제네릭을 처리하는 방법이 있습니까?

분류에서Dev

yml 파일을 사용하여 컨테이너를 만든 후 명령을 실행하는 방법

분류에서Dev

Apache 용 .htaccess 파일을 작성하여 PHP를 추가하고 (제공되지 않은 경우) 잘 작성된 404 페이지를 사용하는 방법

분류에서Dev

파이썬에서 함수 호출 후 사용 된 메모리를 반환하는 방법

분류에서Dev

git / git flow를 사용하여 커밋 된 파일을 나열하는 방법

Related 관련 기사

  1. 1

    XSL을 사용하여 병합 한 후 여러 XML 파일의 모든 데이터를 처리하는 방법

  2. 2

    multer를 사용하여 nodejs에 이미지를 업로드 한 후 json 파일의 이미지 URL 문제

  3. 3

    파이썬을 사용하여 docx 파일의 제목 아래에서 텍스트를 추출하는 방법

  4. 4

    ServeletFilter를 사용하여 Servlet 처리가 완료된 후 응답 Content-Type을 업데이트하는 방법

  5. 5

    스크래피와 함께 파이썬을 사용하여 여러 웹 페이지 크롤링 된 데이터를 csv 파일로 출력하는 방법

  6. 6

    우편에 표준 출력을 캡처하고 CTRL-C를 사용하여 방해하는 손상된 압축 파일을 제공합니다

  7. 7

    git add.?를 사용하여 삭제 된 파일을 준비하지 못하도록하는 방법

  8. 8

    노드를 사용하여 업로드 후 파일을 삭제하는 방법은 무엇입니까?

  9. 9

    라이브 USB를 사용하여 우분투에서 삭제 된 파일을 복구하는 방법은 무엇입니까? [파일 형식 기준]

  10. 10

    Express 4 및 Multer를 사용하여 파일을 저장하는 방법은 무엇입니까?

  11. 11

    5 분 후에 생성 된 파일을 찾는 방법은 루트 사용자가 소유 한 하나의 하위 디렉토리를 제외합니다.

  12. 12

    NTFS 파티션을 제거한 후 삭제 된 파일을 복구하는 방법이 있습니까?

  13. 13

    PHP를 사용하여 zip 파일을 다운로드 한 후 '잘못된 파일'오류를 수정하는 방법은 무엇입니까?

  14. 14

    CMD를 사용하여 트리에서 파일을 추출하는 방법

  15. 15

    Grunt 및 / 또는 Gulp를 사용하여 여러 파일을 여러 출력으로보고 처리하는 방법 (동일한 방법)?

  16. 16

    사용자가 multer를 사용하여 파일을 선택하지 않는 경우 양식 데이터에서 "req.file.path"를 무시하는 방법

  17. 17

    파일 업로드 후 Django에서 AJAX를 사용하여 JavaScript와 연결된 테이블을 업데이트하는 방법은 무엇입니까?

  18. 18

    명령 줄을 사용하여 ._ 파일 무리를 삭제하는 방법

  19. 19

    개미를 사용하여 최신 업데이트 된 단일 파일을 복사하는 방법?

  20. 20

    쉘 스크립트를 사용하여 삭제 된 파일 라인을 다른 파일로 리디렉션하는 방법

  21. 21

    MapReduce를 사용하여 로그 파일을 처리하는 방법

  22. 22

    PHP를 사용하여 xml 파일을 처리하는 더 빠른 방법

  23. 23

    CreateProcess를 사용하여 tshark를 호출하여 캡처 파일을 txt로 변환하는 방법

  24. 24

    git이 새 파일을 이동 된 파일이 아닌 새 파일로 처리하도록 강제하는 방법은 무엇입니까?

  25. 25

    Class <T>를 사용하여 중첩 된 제네릭을 처리하는 방법이 있습니까?

  26. 26

    yml 파일을 사용하여 컨테이너를 만든 후 명령을 실행하는 방법

  27. 27

    Apache 용 .htaccess 파일을 작성하여 PHP를 추가하고 (제공되지 않은 경우) 잘 작성된 404 페이지를 사용하는 방법

  28. 28

    파이썬에서 함수 호출 후 사용 된 메모리를 반환하는 방법

  29. 29

    git / git flow를 사용하여 커밋 된 파일을 나열하는 방법

뜨겁다태그

보관