텍스트 말고 몽고DB 데이터베이스에 이미지를 저장하는 방법은 무엇입니까? MongoDB 데이터베이스에 이미지 배열을 만들 수 있습니까? 동영상도 그렇게 할 수 있을까요?
16MB보다 큰 파일을 저장할 때는 항상 GridFS를 사용해야 합니다. - [GridFS를 사용해야 하는 경우][1]
MongoDB [BSON 문서][2]의 한도는 16 입니다.MB. 따라서 파일 배열의 총 크기가 이 크기보다 작을 경우 BinData 데이터 유형을 사용하여 파일에 직접 저장할 수 있습니다.
비디오, 이미지, PDF, 스프레드시트 등 - 상관없습니다. 모두 동일하게 취급됩니다. 적절한 콘텐츠 유형 헤더를 반환하여 표시할 책임은 애플리케이션에 있습니다.
자세한 내용은 GridFS 설명서를 참조하십시오.
[1]: https://docs.mongodb.com/manual/core/gridfs/#사용 시 그리드프 [2]: http://docs.mongodb.org/manual/reference/limits/#BSON%20 문서%20크기
당신은 이것을 시도해 볼 수 있다:
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();
http://blog.mongodb.org/post/183689081/storing-large-objects-and-files-in-mongodb
몽구스 플러그인에는 support. dell. 고궁박물원 몽구스 파일 불렀으매 있습니다. 파일 업로드 파일 추가하기에서는 필드를 식육목 몽구스과에 스키마에는 수 있습니다. 이 때 사용한 적이 있지만 증명할 수 있다. 그 문자열을 저장할 경우 데이터베이스에 대한 이미지는 매우 작은 Base64 인코딩합니다 수 있습니다.
아래 라이브러리보다는 설치
var express = require(‘express’);
var fs = require(‘fs’);
var mongoose = require(‘mongoose’);
var Schema = mongoose.Schema;
var multer = require('multer');
ur 접속하십시오 몽고 db:
mongoose.connect(‘url_here’);
데이터베이스 스키마 정의
var Item = new ItemSchema(
{ img:
{ data: Buffer, contentType: String }
}
);
var Item = mongoose.model('Clothes',ItemSchema);
사진 미들웨어 멀터 사용하여 업로드입니다 서버 측에서.
app.use(multer({ dest: ‘./uploads/’,
rename: function (fieldname, filename) {
return filename;
},
}));
우리의 db 게시물로의 필요
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();
});
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);
}
});
In your 보기:
<form action="/" method="post" enctype="multipart/form-data">
<input type="file" name="photos">
물론 이 코드를 통해 몽고 db 에서 단일 여러 이미지를 추가할 수 있습니다.