在上传文件时,是否有任何方法禁用将空格替换为Wordpress中的破折号?我有带有mp3文件的网站,例如,我有文件:
"Author - Track Title (Original Mix).mp3"和上传后,它转换为
"Author-Track-Title-(Original-Mix).mp3"我知道这是因为安全原因,但在其他网站上,当你下载一个文件时,它可以用正常的文件名下载,不需要破折号。怎么修呢?
发布于 2017-10-19 09:33:41
这些空格在wordpress中被替换,因为有些应用程序不会打开它们,比如在旧XP和其他应用程序中,而且它们在url中无效。
有时您会遇到反斜杠的问题,这通常取决于安全来阻止代码注入攻击。
作为一个解决方案,您可以尝试这个从‘核心’网站-但这可能总是失败的更新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
发布于 2017-10-19 09:39:28
您应该永远不要在您的系统中没有安全的urls。会出现一些奇怪的情况:文件“神奇地”不存在,文件名函数行为怪异,URL越来越难创建,等等。
TL;DR:不要这样做,。
当用户上传一个文件时,将文件名转换为一个安全的,但也可以将原始文件名存储在数据库中。然后,当您将它返回给用户时,您可以将下载的头/文件名设置为存储的名称,而内部则有一个很好的安全url。
https://stackoverflow.com/questions/46824549
复制相似问题