java关于文件名带有空格的个人见解

本文讲述了在Java中处理文件名包含空格时遇到的问题及解决方案。通过使用getServletContext().getRealPath()获取文件绝对路径,并利用replaceAll()处理路径中的反斜杠,最后在URL中加入'file:/'前缀,解决了背景图片无法识别的问题。当文件路径中包含如'Program files'这样的空格时,将路径用双引号包围即可正常工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

好久没写文章了,为什么会有这个标题呢

最近上篇文章不是写pdf生成吗,其中要加一个印章的图标,这个图标要跟pdf连体,就是不能单独被保存,基本上有几种保存图标的方法:

1.数据库

2.本地文件

我选择了本地的文件,没有放到应用里面,这样每次部署你都要事先把印章放到硬盘的某一个地方,换个服务器还得来一遍,为什么不直接放到应用呢。

应用因为不安全,怕被直接访问,然后图片就被保存下来了,最近开始看servlet,才知道,应用里面有很多保护去,比如web-inf,meta-inf,一般情况下meta-inf我们很少用这个文件夹,它作用是用来指定库的依赖性的。

开始正题:

我基本思路是读到img的绝对路径(防止应用里面访问不了,不用相对),然后把它设成背景,然后生成pdf,打印。

String sealPath = getServletContext().getRealPath(PropertySetting.getString("bop", "seal.root.path")+userinfo.getBeagency()+PropertySetting.getString("bop", "seal.file.suffix"));

sealPath = "\"file:/"+sealPath.replaceAll("\\\\", "/")+"\"";

1)getServletContext().getRealPath("path"),它生成的类似这样:D:\\Program files\\workspace\\cotton\\WebRoot\\WEB-INF\\seal\\371401.bmp

到页面的时候相当转译了一次。

2)但是在background-image:url(path),不识别,所以有了replaceall()这个方法,连同转译字符一起转成‘\’;

3)  发现前面得家‘file:/’才行,这个是我直接写死别的路径知道的,比如background-image:url(file:\D:seal\371401.bmp);

4)把上面的硬编码换了,发现有挂掉了,唯一的区别就是我生成的Program files里面有空格,网上看了一下他们的直接把路径用双引号(“”)引起来就ok了,测试通过!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值