php表单文件上传问题,文件名中有空格

时间:2010-07-20 11:52:27

标签: php whitespace file-upload

我仍然遇到空白问题:

我有一个uploadform供用户上传mp3文件。它工作正常,除非文件名中有空格。目前我告诉用户不要使用带有空格的文件名,但显然在mp3中使用它们非常常见。所以我想解决这个问题。会发生什么:

用户使用html文件输入表单选择没有空格的文件:

<form method="post" enctype="multipart/form-data" name="form2" id="form2" action="' . $_SERVER[PHP_SELF] . '">
<input type="file" style="color:#888888" name="file" id="file" />

然后,在服务器端,我用

处理文件
copy($_FILES['file']['tmp_name'], $newfilename);

这很好用。

通常不是:

用户选择文件名中包含空格的文件。 print_r($ _ POST)如下所示:

Array ( [x] => 21 [y] => 32 )

print_R($ _ FILES)看起来像这样:

Array ( [file] => Array ( [name] => 11. test with spaces.mp3 [type] => [tmp_name] => [error] => 1 [size] => 0 ) )

由于tmp_name为空,脚本无法访问该文件,因此我们有一个丑陋的错误... 所以我认为我需要操作[tmp_name],因此它没有空格,因为我的Apache / Linux服务器似乎有问题。有没有人想过如何解决这个问题?

Greetz和谢谢

Maenny

2 个答案:

答案 0 :(得分:2)

Array ( [file] => Array ( [name] => 11. test with spaces.mp3 [type] => [tmp_name] => [error] => 1 [size] => 0 ) )

错误代码1表示上传的文件超出了php.ini中的upload_max_filesize指令。也许这是你的问题。

答案 1 :(得分:0)

我强烈建议不要使用真实的文件名,因为如果你想在任何时候扩展你将会遇到很多麻烦,如果你想保留原始文件名,请使用额外的字段。 ;)

希望这会对你有所帮助。