三种保存电脑本地图片方法

news/2024/11/23 23:09:16/

 

1这是我最开始存储图片到项目获取地址的方法用下面这个方法去获取我想要存地址结果很不理想,每次获取的是target下的目录,(ps:我用的是idea 发布用的是exploded包,不知道和这个有关系没)D:\workCode\文件名\项目文件名\target\项目名fileName = request.getSession().getServletContext().getRealPath("/");//这一步就行获取地址我的这项目用的方法
后来我看了这个博客图片保存到Tomcat的webapps目录保存方法有用,展示我没用到但是试了一下没成功,感觉是我自身问题没理解博主的代码图片保存在Tomcatwebapps目录下代码如下 (亲测方法有效)public static String uploadFile(MultipartFile file,HttpServletRequest request) throws IllegalStateException, IOException{Logger logger = Logger.getLogger(UploadImg.class);if(file!=null){//获取上传文件的原始名称String originalFilename = file.getOriginalFilename();String newFileName ="";String pic_path;// 上传图片if ( originalFilename != null && originalFilename.length() > 0) {//获取Tomcat服务器所在的路径String tomcat_path = System.getProperty( "user.dir" );System.out.println(tomcat_path);//获取Tomcat服务器所在路径的最后一个文件目录String bin_path = tomcat_path.substring(tomcat_path.lastIndexOf("\\")+1,tomcat_path.length());System.out.println(bin_path);//若最后一个文件目录为bin目录,则服务器为手动启动if(("bin").equals(bin_path)){//手动启动Tomcat时获取路径为:D:\Software\Tomcat-8.5\bin//获取保存上传图片的文件路径pic_path = tomcat_path.substring(0,System.getProperty( "user.dir" ).lastIndexOf("\\")) +"\\webapps"+"\\pic_file\\";}else{//服务中自启动Tomcat时获取路径为:D:\Software\Tomcat-8.5pic_path = tomcat_path+"\\webapps"+"\\pic_file\\";}// 新的图片名称newFileName =UUID.randomUUID() + originalFilename.substring(originalFilename.lastIndexOf("."));//可以自己写重新生成名字的方法,我没看懂就没用他的logger.info("上传图片的路径:" + pic_path + newFileName);// 新图片File newFile = new File(pic_path + newFileName);// 将内存中的数据写入磁盘file.transferTo(newFile);//这个方法我也没有用,如果自己有工具类可以使用自己的}return newFileName;}else{return null;}}
-----------------------------------当然遇到问题可以访问我的其他相关解决方法
2图片已经存在tomcat下webapp下pic_file中了那我们该如何访问它呢?我当时想直接路径访问比如这样D:\apache-tomcat-8.0.52\webapps\pic_file\1236485.jpg这时候会有问题,使用谷歌浏览器访问本地资源时浏览器会报Not allowed to load local resource后来查询得知谷歌浏览器为保护安全不允许直接访问本地资源,然后我就要解决这问题进行访问这个资源有两个解决方案方法一:更改tomcat的server.xml文件就行虚拟地址映射,就能访问到该资源。(对于我来说这并不能解决问题,因为我数据库存贮着我图片的地址,所以看上边那个tomcat地址,每个人的tomcat版本号名不一样导致文件名也不一样,可以都改成tomcat,但是去给客户部署的时候还要有这种步骤肯定很麻烦,到时候部署的人员不知道又会有麻烦,所以不推荐这种方法)方法二:方法一其实是我们陷入了一个误区的一个想法,这个误区也是我看到別的博客才发觉出来,我当初在想应该有很多人也遇到过我这样的问题把图片存入本地然后展示出来,但是在网上搜索资源很匮乏。后来发现是我思想出现了问题,也是我经验不足吧,这个给我了些启发怎么访问本地图片/资源。我们可以像访问文件服务器一样进行资源访问啊,比如http://localhost:8080/pic_file/1236485.jpg。这样就能直接访问我们的资源并且下次发的包就不会把原来的图片丢失。
3----------------------------------
方法三:使用fastDFS开源的轻量级分布式文件系统进行文件上传,查看,---条件允许的情况下---此方法优于上面两种,
fastDFS---安装使用上网搜索
安装条件中写自启动
其他书写都一样

 


http://www.ppmy.cn/news/766418.html

相关文章

html 网页图片保存

前情提要 图片img可以通过添加a标签进行保存图片,但是在很多时候,需要 把当前网页进行图片保存,所以整体思路是这样的: 将html保存到本机: 第一步:将html转化为图片 第二步:保存图片到本机(…

保存网页图片的方法

最近ui妹子经常找我....... 当然不是的....只是想让我给他弄两张网页的图片....遂FE退化切图仔.... 话不多说,进入正文。有些朋友因为工作需要(比如某鹿某祖等图片好想保存下来天天舔屏,还得是高清的....)又不知道如何保存网页中…

计算机中保存和另存为,电脑另存为在哪里

大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。 以excel为例,另存为在页面右上角的文件选项里。将文件另存为的具体步骤是: 1、点击左上角的【文件】。 2、选择【另存为】命令。 3、选择保存文件的位置和名…

接收前端传过来的图片文件,并保存到电脑磁盘中

直接上代码: /*** 获取接件人签名信息 , 保存到草稿箱* param image 签名图片* param code 唯一性标识符* return 结果*/Overridepublic boolean sign(MultipartFile image, String code) throws IOException {// 校验参数if(image null || (StringUtils.isEmpty(code))){//…

电脑里照片想要长期储存,用什么方式?

从数据安全性和容量两个方面,我推荐大量照片、视频保存,使用家用级别的磁盘整列柜。为什么呢?容我细细分解。 目前存储方式主要有:硬盘(机械硬盘/SSD硬盘/磁盘阵列)、U盘、光盘、网盘。 保存数据主要考虑两…

【深度学习】日常笔记10

loss_fn nn.MSELoss(reductionnone)这行代码,在这个上下文中,loss_fn实际上是一个损失函数对象而不是返回的具体值。 使用nn.MSELoss(reductionnone)创建的loss_fn是一个均方误差损失函数对象,而不是计算后的结果。要计算具体的损失值&…

javaweb学习4

作业 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><script type"text/javascript">//动态绑定表单提交window.onloadfunction (){//得到form2的dom对象var fo…

LTE是什么意思?

LTE是英文Long Term Evolution的缩写。 LTE也被通俗的称为3.9G&#xff0c;具有100Mbps的数据下载能力&#xff0c;被视作从3G向4G演进的主流技术。它改进并增强了3G的空中接入技术&#xff0c;采用OFDM和MIMO作为其无线网络演进的唯一标准。在20MHz频谱带宽下能够提供下行100…