public void insertFileByGridFS(byte[] data, ObjectId id, String filename) throws Exception{
		GridFS gfs = new GridFS(database, "pdf");
		GridFSInputFile gfsFile = gfs.createFile(data.clone());
		gfsFile.setContentType("application/pdf");
		//GridFS will set the parent file id for the chunk id by default.
		//if set the id by setId(new ObjectId()), the file_id of the chunk will be null
		gfsFile.setId(id);
		gfsFile.setFilename(filename);
		gfsFile.save();
		
	}
Please don't explicitly call GridFSInputFile.setId(), otherwise the file_id field of chunk will be null, you can't retrieve the file by GridFSDBFile.findOne(filename) (file name is store in the files collection and link to chunk collection by the file_id)
 
留言
張貼留言