java+MongoDB实现存图片、下载图片的方法示例
程序员文章站
2023-11-14 15:14:52
本文实例讲述了java+mongodb实现存图片、下载图片的方法。分享给大家供大家参考,具体如下:
1.存图片
demo:将某个文件存到mongodb,这个file可以...
本文实例讲述了java+mongodb实现存图片、下载图片的方法。分享给大家供大家参考,具体如下:
1.存图片
demo:将某个文件存到mongodb,这个file可以通过前台参数传入,我这里直接将d://test.png存到mongodb
@requestmapping("/addfile") @responsebody public string addfile(){ mongoclient client = new mongoclient("127.0.0.1",27017); db db = client.getdb("files"); gridfs fs = new gridfs(db); try { gridfsinputfile gridfsinputfile = fs.createfile(new file("d://test.png")); gridfsinputfile.setfilename("db_test.png"); gridfsinputfile.save(); } catch (ioexception e) { e.printstacktrace(); } return "file over"; }
执行后,可看到图片已经存入成功:
2.下载图片
需要指定图片id,可从前端参数传入,我这里写死(上一步存图片,对应了一个mongodb中的files_id):
@requestmapping("/downfile") public void downfile(httpservletresponse response){ string fileid = "5c0f7c374fc404123403d69e";//这里可以通过参数取代 try { mongoclient client = new mongoclient("127.0.0.1",27017); db db = client.getdb("files"); gridfs fs = new gridfs(db); gridfsdbfile gridfsdbfile = fs.findone(new objectid(fileid)); outputstream sos = response.getoutputstream(); response.setcontenttype("application/octet-stream"); // 获取原文件名 string name = (string) gridfsdbfile.get("filename"); string filename = new string(name.getbytes("gbk"), "iso8859-1"); // 设置下载文件名 response.addheader("content-disposition", "attachment; filename=\"" + filename + "\""); // 向客户端输出文件 gridfsdbfile.writeto(sos); sos.flush(); sos.close(); } catch (ioexception e) { e.printstacktrace(); } }
更多java相关内容感兴趣的读者可查看本站专题:《java图片操作技巧汇总》、《java日期与时间操作技巧汇总》、《java操作dom节点技巧总结》、《java文件与目录操作技巧汇总》及《java数据结构与算法教程》。
希望本文所述对大家java程序设计有所帮助。