图片虚拟目录--即图片保存在window硬盘上面

时间:2022-09-05 08:14:14

这个是图片保存在电脑的硬盘上面的图片上传设置,既不是在web工程中,也不是在专门的图片服务器中,下面是配置方法:

图片虚拟目录--即图片保存在window硬盘上面

图片虚拟目录--即图片保存在window硬盘上面

图片虚拟目录--即图片保存在window硬盘上面r

这里的Document base 我们这里设置为F:\images

如果在浏览器访问图片访问虚拟目录即可:

http://localhost:8088/pic/40c43d9a-6e48-43ce-976d-cc0147216f13.jpg

图片虚拟目录--即图片保存在window硬盘上面

此时我们查看设置的图片路径:就在我们的电脑F盘有这些图片,上传成功。

图片虚拟目录--即图片保存在window硬盘上面

具体代码实现:

@RequestMapping("/editSubmit")
public String editSubmit(Model model ,Integer id,Items item,MultipartFile pictureFile) throws IllegalStateException, IOException{
model.addAttribute("id",id);
//MultipartFile专门用来接收上传的图片,附件等等类型复杂文件
if (pictureFile!=null) {
String originalFilename=pictureFile.getOriginalFilename();
String filePath="F:\\images\\";
/**
* 在处理 UNIX 平台的根目录,以及 Microsoft Windows 平台的盘符、根目录和 UNC(网络硬盘)
* 路径名时,将用到前缀这一概念。如下所示:
*
* 对于 UNIX 平台,绝对路径名的前缀始终是 "/"。相对路径名没有前缀。
* 表示根目录的绝对路径名的前缀为 "/" 且名称序列为空。
* 对于 Microsoft Windows 平台,包含盘符的路径名前缀由驱动器号和一个 ":"
* 组成。如果路径名是绝对路径名,还可能后跟 "\\"。
* UNC 路径名的前缀是 "\\\\";主机名和共享名是名称序列中的前两个名称。没有指定驱动器的相对路径名没有前缀。
*
* / String filePath="F:\\images\\"; String
* originalFilename=pictureFile.getOriginalFilename(); /* 关于字符串的截取:
* int indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。 int indexOf(int ch,
* int fromIndex) 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。 int
* indexOf(String str) 返回指定子字符串在此字符串中第一次出现处的索引。 int indexOf(String
* str, int fromIndex) 返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。 int
* lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现处的索引。 int lastIndexOf(int
* ch, int fromIndex) 返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。 int
* lastIndexOf(String str) 返回指定子字符串在此字符串中最右边出现处的索引。 int
* lastIndexOf(String str, int fromIndex)
* 返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。 substring(int beginIndex)
* 返回一个新的字符串,它是此字符串的一个子字符串。 substring(int beginIndex, int endIndex)
* 返回一个新字符串,它是此字符串的一个子字符串。
* 索引就是指的查找的该字符在此字符串中的哪个位置:originalFilename.lastIndexOf(".")这里得到的是.
* 的位置是9
* originalFilename.substring(originalFilename.lastIndexOf("."))
* 这个是substring截取字符串,从第九个位置开始,即截取.jpg这个串。
*
*/ String newname=UUID.randomUUID()+originalFilename.substring(originalFilename.lastIndexOf("."));
//图片全路径设置
File file=new File(filePath+newname);
//将内存中的文件写入磁盘
pictureFile.transferTo(file);
//将新图片的名称写入数据库
item.setPic(newname); }
itemService.update(id,item);
return "redirect:queryitem.action";
}
//这里要区分开jsp参数与controller参数的绑定形式:是restful形式还是非restful形式的绑定。如果是restful形式的用{},用@Pathvariable接收
//如果是非restful形式的,则使用在方法的参数列表中接收
@RequestMapping("/deleteitem")
public String deleteitem(Integer id) {
itemService.deleteItem(id);
return "redirect:queryitem.action";
}

  这里注意File类的路径在windows中是\\.

另外注意字符串的截取问题

图片虚拟目录--即图片保存在window硬盘上面的更多相关文章

  1. IIS虚拟目录与UNC路径权限初探

    最近在一个项目中涉及到了虚拟目录与UNC路径的问题,总结出来分享给大家. 问题描述 某客户定制化项目(官网),有一个图片上传的功能.客户的Web机器有10台,通过F5负载均衡分摊请求. 假设这10台机 ...

  2. Tomcat虚拟目录的配置

    Tomcat可以作为应用服务器部署Java应用,同时可以创建虚拟目录存放图片,相当于一个图片服务器使用1. 创建目录 /usr/images/2. 编辑TOMCAT_HOME/conf/server. ...

  3. Silverlight项目笔记7:xml/json数据解析、TreeView、引用类型与数据绑定错误、图片加载、虚拟目录设置、silverlight安全机制引发的问题、WebClient缓存问题

    1.xml/json数据解析 (1)xml数据解析 使用WebClient获取数据,获取到的数据实例化为一个XDocument,使用XDocument的Descendants(XName)方法获得对应 ...

  4. jsp 访问文件夹中的图片,tomcat配置虚拟目录

    1.配置hosts文件 找到C:\Windows\System32\drivers\etc\hosts.txt 文件 添加127.0.0.1  www.image.com  在dos 命令中执行 pi ...

  5. tomcat 配置图片虚拟路径不起作用解决办法

    最近在做一个小项目,用到了图片上传服务器,以前尝试过实现这个功能Demo,虽然基本功能没有问题,但是很不完善,当时也有在博客记录, 地址如下: http://www.jb51.net/article/ ...

  6. Android 获取SDCard中某个目录下图片

    本文介绍Android开发中如何获取SDCard中某目录下的所有图片并显示出来,下面的我们提供的这个函数是通用的,只要提供路径就可以查询出该目录下所有图片的路径信息,并保存到一个List<Str ...

  7. android 删除SD卡或者手机的缓存图片和目录

    public static final String TEMP_PHOTO_FILE_NAME = "temp_photo.jpg"; private static String ...

  8. vue项目使用static目录存放图片解决方案

    我个人喜欢把所有引用文件全部放在打包文件src的同级文件static文件内部,方便整合. 提醒:vue项目中正常情况下图片是由 url-loader 处理,加入了hash值,如果放到static里面w ...

  9. springboot-为内置tomcat设置虚拟目录

    需求 项目使用springboot开发,以jar包方式部署.项目中文件上传均保存到D判断下的upload目录下. 在浏览器中输入http://localhost:8080/upload/logo_1. ...

随机推荐

  1. mac好用的markdown编辑器

    在刚开始接触markdown的时候,就被吸引了.此后一直在找贴心的好用的markdown编辑器.印象笔记和马克飞象配合着用也是挺好的,唯一的缺点就是比较封闭,发个笔记的链接给同学,还得注册才能看,导致 ...

  2. 信号量sem

    一.什么是信号量 为了防止出现因多个程序同时访问一个共享资源而引发的一系列问题,我们需要一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访问代码的临界区域.临界区域是指执行数据更 ...

  3. Spring集成hibernate错误

    八月 25, 2016 7:55:31 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin警告: [SetPropertiesRule ...

  4. Android sqlite 数据库在java代码中的增删改查

    private void queryPerson(PersonSQLiteOpenHelper personSQLiteOpenHelper) { SQLiteDatabase sqLiteDatab ...

  5. &lbrack;置顶&rsqb;&NewLine; Chat Room:基于JAVA Socket的聊天室设计

    d0304 更新功能实现 d0312 更新部分图片&UI设计部分 d0318 更新功能实现 d1222 实现添加好友功能.实现注册功能.修改大量BUG github:https://githu ...

  6. Lock 从来就没有成功过

    package lime.thinkingInJava._021._005._003; import java.util.concurrent.ExecutorService; import java ...

  7. PostgreSQL参数学习:random&lowbar;page&lowbar;cost

    磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL基础知识与基本操作索引页    回到*页面:PostgreSQL索引页[作者 高健@博客园  luckyjackgao@g ...

  8. apache 静态编译和动态编译参考

    apache-2.2.22 编译安装笔记 一.静态编译     在使用./configure 编译的时候,即没有使用--enable-mods-shared=[module]或者--enable-[m ...

  9. mac安装mysql及终端操作mysql与pycharm的数据库可视化

    一.Mac安装mysql 首先下载mysql,地址:https://dev.mysql.com/downloads/mysql/ 然后已知安装就好了,会出现让你记住密码的提示,然后就安装好了.... ...

  10. RCC 2014 Warmup &lpar;Div&period; 2&rpar; A~C

    近期CF的pretext真是一场比一场弱.第一次在CF上被卡cin.cout.... A. Elimination time limit per test 1 second memory limit ...