有一个上传框,用户可以上传文档ID的图像。问题是,无论是谁实现了这个上传框,如果有特殊字符,都不会对其进行编程以对文件名进行编码。所以现在服务器中有一堆上传文件带有特殊字符,如
14592-Carte d'identité-072616143337.pdf
因此,当他们尝试在浏览器中将其可视化时,他们所拥有的链接是:
<a href="https://www.fortadpays.com/upload/memdocs/14592-Carte d'identité-072616143337.pdf">See File</a>
哪个不行。我尝试使用urlencode()
对文件名进行编码,但它仍无效。
如何显示带有特殊字符的文件?
我是否必须首先更改使用特殊字符上传的所有文件的文件名,例如:
14592-Carte d'identité-072616143337.pdf
将更改为:
14592-Carte-didentite-072616143337.pdf
为了能够在浏览器中显示?我使用什么功能?
此外,我应该使用什么功能来更改原始上传框中文件名的名称,以便它不再上传带有特殊字符名称的文件?
答案 0 :(得分:1)
您可以使用preg_replace()函数:
preg_replace('/[^\da-z]/i', '-', $string);
这会将所有非字母数字字符替换为&#34; - &#34;
您可以使用此功能在上传后直接重命名上传的文件