上传文件时禁止将空格替换为破折号[Wordpress]

时间:2017-10-19 07:20:02

标签: php wordpress

上传文件时,有没有办法禁止在Wordpress中将空格替换为破折号? 我有带mp3文件的网站,例如我有文件:

"Author - Track Title (Original Mix).mp3" 上传后转换为

"Author-Track-Title-(Original-Mix).mp3"

我知道这是因为安全原因,但在其他网站上下载文件时,可以使用普通文件名下载而无需DASHES。如何解决?

2 个答案:

答案 0 :(得分:0)

这些空格在wordpress中被替换,因为某些应用程序不会打开它们,例如旧的XP和其他应用程序,并且它们在URL中无效。

有时候你会遇到反斜杠的问题,这通常是安全性来阻止代码注入攻击。

作为一种解决方案,你可以在'Make wordpress Core'网站上试试这个 - 但是在wordpress的更新中总是会失败!!!

if ( '' == $url )
                 return $url;
        $url = str_replace(' ', '%20', $url);
     $url = preg_replace('|[^a-z0-9-~+_.?#=!&;,/:%@$\|*\'()\\x80-\\xff]|i', '', $url);
         if ( 0 !== stripos( $url, 'mailto:' ) ) {
                 $strip = array('%0d', '%0a', '%0D', '%0A');
                 $url = _deep_replace($strip, $url);
         }

         $url = str_replace(';//', '://', $url);
         /* If the URL doesn't appear to contain a scheme, we
          * presume it needs http:// appended (unless a relative

来源:https://core.trac.wordpress.org/attachment/ticket/23605/23605.diff

答案 1 :(得分:0)

您的系统中 从不 都应该使用not-safe-urls。奇怪的案例将出现在文件"神奇地"不存在,filenamefunctions行为怪异,URL变得更难创建,等等 TL; DR:不要这样做

当用户上传文件时,将文件名转换为安全网址,同时将原始文件名存储在数据库中。然后,当您将其呈现给用户时,您可以将下载的标题/文件名设置为该存储的名称,而在内部则有一个不错的安全URL。