首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >文件名中的特殊字符-下载与删除

文件名中的特殊字符-下载与删除
EN

Stack Overflow用户
提问于 2015-12-12 20:27:47
回答 1查看 292关注 0票数 0

我正在尝试在我的网站上创建一个文件管理系统。下载包含特殊字符的文件时出现问题(其他工作正常)。如果我使用file_exists($mypath),则结果为真,因此文件存在。

当用unlink($mypath)删除这个文件时,它也工作得很好。唯一不起作用的就是下载文件。下载是通过href链接完成的,在那里我回显了路径,但它以某种方式转换了字符,因此链接无法工作。解决方案是在一些转换中,但我还没有成功。

EN

回答 1

Stack Overflow用户

发布于 2015-12-12 20:52:18

我怀疑php正在将特殊字符转换为html实体。

您应该使用'rawurlencode‘php方法来保留特殊字符。

下面的链接讨论了你的问题(特殊字符出现在文件名中并想要创建一个链接):

http://www.dxsdata.com/2015/03/html-php-mailto-content-link-with-special-characters/

他们的解决方案展示了rawurlencode的使用,以下代码是从上面的链接复制的,以防链接死掉:

截图开始...

场景

在您的网站上,您希望提供一个链接,该链接可以打开一个邮件客户端,如带有邮件和内容建议的Outlook。内容包含指向文件的链接,该文件的名称中包含特殊字符,这会导致Outlook断开该链接,例如,如果该文件包含空格或德语Umlaute。

解决方案

使用PHP编写

代码语言:javascript
运行
复制
<?php
$fullPath = $yourAbsoluteHttpPath . "/" . rawurlencode(rawurlencode($filename));

$mailto = "mailto:a@b.com?subject=File for you&body=Your file: ".$fullPath;

?>

<a href="<?=$mailto?>">Generate Mail</a>

注意“rawurlencode”函数的双重用法。第一个是HTML输出所需要的,第二个是Outlook将链接代码放入其邮件窗口时所需要的。

剪接结束;-)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34239824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档