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---安装使用上网搜索
安装条件中写自启动
其他书写都一样

三种保存电脑本地图片方法相关推荐

  1. canvas保存到本地图片三种方法

    canvas保存到本地图片三种方法 canvas保存本地图片 第一种方法(修改图片的媒体类型,window.open直接下载) 第二种方法(创建a标签,通过自己触发点击来下载) 第三种方法(将图片数据 ...

  2. SQL下三种执行CMD命令的方法

    SQL下三种执行CMD命令的方法: 先删除7.18号日志: (1)exec master.dbo.xp_cmdshell 'del C:/winnt/system32/logfiles/W3SVC5/ ...

  3. 三种录制接口脚本的方法

    三种录制接口脚本的方法 在做接口测试没有接口文档的情况下,就可以使用录制脚本的方法来录制接口测试的脚本.jmeter本身就支持录制脚本,但是还有两种另外的工具也可以录制脚本. 因为我懒得自己做截图,所 ...

  4. win7系统wifi没有网络连接到服务器,Win7无线Wifi无法连接怎么办?win7系统Wifi无法连接的三种故障原因及解决方法...

    当我们准备接入一个Wifi的时候,发现怎么样都连不进去,该怎么办呢?一般出现该问题基本是由于"WiFi密码不正确" ."Win7中保存的WiFi记录与路由器中不符&quo ...

  5. linux进入字符界面的登录密码,三种进入CentOS界面字符方法

    三种进入CentOS界面字符方法 在CentOS界面切换问题中,也许很多人习惯进入字符工作方式来进行操作.那么如何切换到字符工作方式呢?下面我们就来介绍3种方法来进入字符工作方式: 在图形环境下开启终 ...

  6. 计算机的自带拍视频教程,在线网络课程视频如何录制?三种快速录制视频的方法...

    原标题:在线网络课程视频如何录制?三种快速录制视频的方法 怎么录制在线网络课程视频?前段时间在网上买了一套英语口语快速提升班的课程,但是看过一遍之后很快就忘记了,加上网课快到期了,过期后不能回看.在小 ...

  7. Linux操作系统下三种配置环境变量的方法(linux下几种profile执行顺序)

    http://www.linuxeden.com/html/sysadmin/20080424/56879.html 现在使用linux的朋友越来越多了,在linux下做开发首先就是需要配置环境变量, ...

  8. php冒泡 插入选择 排序,说说PHP数组的三种排序(冒泡/选择/插入)方法

    说说PHP数组的三种排序(冒泡/选择/插入)方法 PHP #数组 #排序 #冒泡 #选择 #插入2012-05-30 10:17 一.冒泡排序法 说明:找到最大的数,排列到最后面,然后继续找 例: $ ...

  9. 计算机文件保存方式,Word文档的三种保存方式

    word中有多种保存文档的方式.可保存当前处理的活动文档 (活动文档:正在处理的文档.在 Microsoft word 中键入的文本或插入的图形将出现在活动文档中.活动文档的标题栏是突出显示的.),无 ...

最新文章

  1. python操作系统-python 操作系统
  2. python中pos的用法_Python:数组、队列及堆栈的使用(list用法)--转
  3. 深度学习和目标检测系列教程 4-300:目标检测入门之目标变量和损失函数
  4. IDEA 2017破解补丁方法
  5. 【接口测试】接口测试用例设计
  6. 小米手机计算机usb连接,小米5手机怎么连接电脑 USB调试方法教程
  7. win10安装visio2010出错_win10 office2013安装错误1907解决方法
  8. php windows挂掉,宕机是什么意思
  9. PMP证书真的有用吗?
  10. Dual Contrastive Learning: Text Classification via Label-Aware Data Augmentation 阅读笔记
  11. 小米 MAX 2 官方ROM历史版本汇总
  12. 安装从GitHub下载的包
  13. 修改Opera浏览器主页搜索引擎
  14. YGG 与 Trial Xtreme 合作,快速进入极限赛车世界
  15. 计算机毕业设计之java+ssm基于协同过滤算法的图书推荐系统
  16. github.com/stretchr/testify/suite
  17. 亚马逊必备神器:防关联浏览器
  18. 数字化转型巨浪拍岸,成长型企业如何“渡河”?
  19. 自刷新Token——前端部分
  20. 2022-kaggle-nlp赛事:Feedback Prize - English Language Learning

热门文章

  1. 动态生成的html代码
  2. Java如何把UNIX时间戳转换成日期格式-日期格式转化时间戳戳-当前时间戳
  3. 「Paper Writing」插入信封符号
  4. 2023-2024最新软件工程毕业设计选题推荐大全
  5. 安防监控系统中IP网络监控比模拟摄像头有哪些优劣?
  6. 1553B总线与FlexRay总线的协议转换
  7. WAdmin 开源啦!!!
  8. java classes.jar_java中class文件与jar文件
  9. Oracle PL/SQL开发基础(第十六弹:记录类型)
  10. Unity2D学习———角色移动两种方式+小怪追随+Unity演示+C#代码