最近有同学提问,在开发的软件项目中,用户上传的文件名中包含空格,导致用户点击下载时,提示找不到该文件,404的错误,这种问题怎么解决呢?
首先,引起这种问题的原因就是文件名中有空格,导致了下载的url无法形成完成的链接。我分别做了两个下载链接,一个是正常文件名的文件,一个是文件名中有空格的文件,他们的链接对比如下:
看出来了吗?第一个链接是完整的,第二个链接的文件名“作者信息表 自动化”中间有空格,相当于url链接已经截断了,这样肯定是没办法下载的。
那么问题来了,遇到这种情况的文件,要怎么才能下载呢?
其实,遇到有空格或者是特殊字符的文件名,用原文件名是无法下载的,只需要对文件名进行一下编码就好,具体的编码方法,每种开发程序语言各不相同,丁老师根据程序语言的不同,列出了每个程序的编码方法,具体如下:
#php
$str=rawurlencode("作者信息表 自动化");
#java
String str="作者信息表 自动化";
str=URLEncoder.encode(str,"UTF-8").replace(" ","%20");
c#
string str = "作者信息表 自动化;
str=WebUtility.UrlEncode(str,"UTF-8").Replace(" ","%20");
composer更新指定包的命令composerrequirealibabacloud/dysmsapi-20170525:2.0.24 --ignore-platform-reqscomposerupdatealibabacloud/dy...
匹配a链接正则:<a href="[^"]+"匹配数字替换,如替换sql语句的(2,'a','b')为(2,2,'a','b')查找项:\(...
在进行vue开发中,经常会遇到复制对象,赋值新对象后,原对象值被改变的问题,举个例子:let old={"a":1,"b":2}let new=old;new['c']=3;这个时候你...
微信支付常见问题及解决办法
mui的toast默认是在底部的,并且没有参数设置位置,经过研究发现可以通过修改css的方式设置位置,具体方法如下:1.muitoast设置type为divmui.toast('hello', {type: 'div...
问题:fastadmin的add/edit方法无法保存数据,检查了页面,name=row['name']正常传送,检查controller,也是默认的方法,什么也没有动可就是无法保存数据。解决:经过仔细研究发现,原来是htm...
有同学反应,在使用photoshop时,忽然文件打不开了,先后试了下psd格式、jpg格式、png格式的,等等等等,全都打不开,重启了电脑也不行,这是怎么回事呢?经过丁老师研究后发现,这是因为安装的是非正版photoshop,在使用时,没有...
用phpmyadmin导入大数据库文件时,容易502badgateway,可以直接在linux上用mysql原生命令导入。1、归置好sql文件用Xshell登录服务器,将迁移过来的sql文件移到home目录下,方便下一步的操作,站长之前迁移...