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

博客讲述了在生成PDF时如何处理印章图标的安全存储问题。作者选择将印章存储在本地文件而非应用中,以防止直接访问和保存。通过使用Servlet了解应用内的保护机制,并通过设置背景图片的方式将印章与PDF整合。在处理文件路径时,遇到了因空格导致的问题,最终通过在路径前添加'file:/'并用双引号包裹解决了问题。

摘要生成于 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、付费专栏及课程。

余额充值