복붙노트

[MONGODB] MongoDB를 데이터베이스에 저장 이미지

MONGODB

MongoDB를 데이터베이스에 저장 이미지

어떻게 텍스트 만이 아닌 MongoDB를 데이터베이스에 이미지를 저장할 수 있습니까? 나는 MongoDB의 데이터베이스에서 이미지의 배열을 만들 수 있습니까? 이 동영상에 대한 동일한 작업을 수행 할 수있을 것인가?

해결법

  1. ==============================

    1.같은 바이너리 데이터를 저장에 대한 자세한 내용은 GridFS의 문서를 참조하십시오.

    같은 바이너리 데이터를 저장에 대한 자세한 내용은 GridFS의 문서를 참조하십시오.

    특정 언어에 대한 지원은 화면의 하단에 연결해야합니다.

  2. ==============================

    2.MongoDB를 BSON 문서는 16메가바이트에 덮인된다. 파일의 배열의 전체 크기가보다 작은 그렇다면, 당신은 BinData 데이터 형식을 사용하여 문서에 직접 저장할 수 있습니다.

    MongoDB를 BSON 문서는 16메가바이트에 덮인된다. 파일의 배열의 전체 크기가보다 작은 그렇다면, 당신은 BinData 데이터 형식을 사용하여 문서에 직접 저장할 수 있습니다.

    등의 동영상, 이미지, PDF 파일, 스프레드 시트, - 그것은 문제, 그들은 모두 동일하게 취급하지 않습니다. 그것은을 표시하는 적절한 콘텐츠 형식 헤더를 반환하는 응용 프로그램까지입니다.

    자세한 내용은 GridFS 문서를 확인하십시오.

  3. ==============================

    3.이 일을 시도 할 수 있습니다 :

    이 일을 시도 할 수 있습니다 :

    String newFileName = "my-image";
    File imageFile = new File("/users/victor/images/image.png");
    GridFS gfsPhoto = new GridFS(db, "photo");
    GridFSInputFile gfsFile = gfsPhoto.createFile(imageFile);
    gfsFile.setFilename(newFileName);
    gfsFile.save();
    
  4. ==============================

    4.http://blog.mongodb.org/post/183689081/storing-large-objects-and-files-in-mongodb

    http://blog.mongodb.org/post/183689081/storing-large-objects-and-files-in-mongodb

    NPM 볼 수는 몽구스 - 파일이라는 플러그인 몽구스가있다. 그것은 당신이 파일 업로드에 대한 몽구스 스키마에 파일 필드를 추가 할 수 있습니다. 나는 그것을 사용한 적이 있지만 유용 할 수 있습니다. 이미지가 당신이 할 수 매우 작은 경우 Base64로 그들을 인코딩하고 데이터베이스에 문자열 저장.

    GridFS없이 NodeJS에서 MongoDB를 가진 파일 (1메가바이트에서) 몇 가지 작은 저장

  5. ==============================

    5.당신이 MongoDB에있는 파일 / 이미지를 저장하는 스크립팅 언어를 사용하는 경우는 빈 데이터 유형을 사용할 수 있습니다. 빈 데이터 파일의 작은 크기를 저장하기 위해 개발되고있다.

    당신이 MongoDB에있는 파일 / 이미지를 저장하는 스크립팅 언어를 사용하는 경우는 빈 데이터 유형을 사용할 수 있습니다. 빈 데이터 파일의 작은 크기를 저장하기 위해 개발되고있다.

    스크립트 언어 드라이버를 참조하십시오. PHP을 보려면 여기를 클릭하십시오.

  6. ==============================

    6.라이브러리 아래에 설치

    라이브러리 아래에 설치

    var express = require(‘express’);
    var fs = require(‘fs’);
    var mongoose = require(‘mongoose’);
    var Schema = mongoose.Schema;
    var multer = require('multer');
    

    당신의 MongoDB를 연결 :

    mongoose.connect(‘url_here’);
    

    데이터베이스 스키마 정의

    var Item = new ItemSchema(
      { img: 
      { data: Buffer, contentType: String }
     }
    );
    var Item = mongoose.model('Clothes',ItemSchema);
    

    미들웨어 Multer를 사용하여 서버 측에 사진을 업로드합니다.

    app.use(multer({ dest: ‘./uploads/’,
    rename: function (fieldname, filename) {
    return filename;
    },
    }));
    

    우리의 DB에 게시 REQ

    app.post(‘/api/photo’,function(req,res){
    var newItem = new Item();
    newItem.img.data = fs.readFileSync(req.files.userPhoto.path)
    newItem.img.contentType = ‘image/png’;
    newItem.save();
    });
    
  7. ==============================

    7.

    var upload = multer({dest: "./uploads"});
    var mongo = require('mongodb');
    var Grid = require("gridfs-stream");
    Grid.mongo = mongo;
    
    router.post('/:id', upload.array('photos', 200), function(req, res, next){
    gfs = Grid(db);
    var ss = req.files;
       for(var j=0; j<ss.length; j++){
         var originalName = ss[j].originalname;
         var filename = ss[j].filename;
         var writestream = gfs.createWriteStream({
             filename: originalName
         });
        fs.createReadStream("./uploads/" + filename).pipe(writestream);
       }
    });
    

    보기에서 :

    <form action="/" method="post" enctype="multipart/form-data">
    <input type="file" name="photos">
    

    이 코드를 사용하면 MongoDB의 여러 이미지뿐만 아니라 하나 추가 할 수 있습니다.

  8. ==============================

    8.이것은 나를 위해 일한

    이것은 나를 위해 일한

  9. from https://stackoverflow.com/questions/4796914/store-images-in-a-mongodb-database by cc-by-sa and MIT license