1.Hi,我有一个仅供内部使用的文件上传脚本,可将文件上传到目录.当我从名为spcace的计算机上传一些东西时,例如1.zip,它上传了一个名称中的空格,从而杀死了电子邮件中的链接.是否有可能使apache在上传时删除空格或使其成为下划线?
我遇到的第二个问题是我如何解析这个链接是一个电子邮件链接与文件的URL作为电子邮件的正文和电子邮件addy什么?
if (move_uploaded_file($_FILES['file']['tmp_name'], $uploaddir . $_FILES['file']['name'])) {
// uploaded file was moved and renamed succesfuly. Display a message.
echo "Link: " . "http://example.org/" . $_FILES["file"]["name"];
Run Code Online (Sandbox Code Playgroud)
你只需要urlencode()你的文件名,一切都很好:
echo "Link: http://example.org/" . urlencode($_FILES["file"]["name"]);
Run Code Online (Sandbox Code Playgroud)
但是如果你想出于其他原因删除空格,你可以使用str_replace():
$replaced_name = str_replace(' ', '_', $_FILES["file"]["name"]);
rename($uploaddir . '/' . $_FILES['file']['name'], $uploaddir . '/' . $replaced_name);
# You should urlencode() it nonetheless:
echo "Link: http://example.org/" . urlencode($replaced_name);
Run Code Online (Sandbox Code Playgroud)