使用GridFS 来进行图片的写入,其中注意要写入图片的二进制文件。
<span style="font-size:14px;">FileInputStream ins = new FileInputStream(fil);
BufferedInputStream bis = new BufferedInputStream(ins);
</span><pre name="code" class="java"><span style="font-size:14px;">GridFSInputFile gfsFile = gfsPhoto.createFile(bis); </span>
<span style="font-size:14px;">package MongoTest;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import org.bson.Document;
import com.mongodb.BasicDBObject;
import com.mongodb.Cursor;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import com.mongodb.client.*;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.gridfs.GridFS;
import com.mongodb.gridfs.GridFSInputFile;
import com.mongodb.MongoCredential;
import com.mongodb.QueryOperators;
import com.mongodb.ServerAddress;
import static com.mongodb.client.model.Filters.*;
public class MongoDBDemo{
private static GridFS gfsPhoto;
public static void main(String[] args) {
try {
List<Document> list = new ArrayList<Document>();
// 连接到MongoDB服务 如果是远程连接可以替换“localhost”为服务器所在IP地址
// ServerAddress()两个参数分别为 服务器地址 和 端口
ServerAddress serverAddress = new ServerAddress("169.254.123.90", 27017);
List<ServerAddress> addrs = new ArrayList<ServerAddress>();
addrs.add(serverAddress);
// MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码
MongoCredential credential = MongoCredential.createScramSha1Credential("sa", "admin", "xush".toCharArray());
List<MongoCredential> credentials = new ArrayList<MongoCredential>();
credentials.add(credential);
MongoClient client = new MongoClient(addrs, credentials);
DB db=client.getDB("tbm");
SimpleDateFormat format= new SimpleDateFormat("yyyy-mm-ddHH:mm:ss");
Calendar calendar= Calendar.getInstance();//获取当前日期
File fil=new File("E:/images/考拉.jpg");
FileInputStream ins = new FileInputStream(fil);
BufferedInputStream bis = new BufferedInputStream(ins);
String fileName=fil.getName();
GridFS gfsPhoto = new GridFS(db,"testFs");
GridFSInputFile gfsFile = gfsPhoto.createFile(bis);
String _id = "CREC188_file000_jpg_yufeng_71470.0-71475.0_"+fileName;
/*gfsPhoto.remove(new BasicDBObject("_id",_id));*/
gfsFile.put("_id", _id);
gfsFile.put("filename", fileName);
gfsFile.put("contentType", ".jpg");
gfsFile.save();
} catch (Exception e) {
e.printStackTrace();
}
}