我有一个有趣的“卡住文件”问题

时间:2012-03-30 20:32:34

标签: php file upload delete-file corrupt

我正在创建一个简单的图像管理工具,允许用户从服务器上传和删除图像。到目前为止,它是非常基本的东西。我发现上传文件名包含空格的文件会导致问题 - 名称中包含空格的所有内容都包含在上传的文件名中,但过去没有任何内容。这个问题不是破坏图像链接(我可以处理那些),但是使用我的删除工具或最简单的“取消链接”脚本无法删除图像。一旦我发现问题和原因,我联系了我们的支持人员,他们清除了两个问题文件。不幸的是,由于这里的系统限制,我没有FTP访问权限。

现在你认为它已全部解决了,但没有。我在这个原型管理工具中添加了非常清晰的警告信息 - 用粗体红色文字 - 我让我的老板和其他一些人通过电子邮件知道该工具,明确地解释了带空格的文件名不起作用。所以...我的老板做了什么?她上传了两个文件名为空白的文件。

所以,除非我有办法在脚本中添加一个idiot过滤器,否则有人可以建议我如何能够删除这两个文件吗?我甚至愿意删除填充的目录并重新创建它(没有任何图像意味着什么,只是随机的东西)。

如果没有关于让这些东西不被打破的建议,是否有任何建议可以阻止我的老板像傻瓜一样,不要切断她的手指?

2 个答案:

答案 0 :(得分:2)

我的最佳答案是,如你所说,将所有其他文件移动到另一个文件夹,删除文件夹,重新创建文件夹。 在那之后,我想你需要在你的php中使用urlencode来处理文件名中的奇怪字符和空格。 一个可能对其他人有帮助的问题,你是在Linux还是Windows?

作为测试,在它工作之前,尝试写入您可以访问的驱动器,这样您就可以玩它直到它工作。然后切换到实时系统。这样您就不必调用支持来删除测试。

此外,您可以将所有空格替换为下划线作为快速修复。

答案 1 :(得分:1)

使用名称中包含空格的unlink()删除文件时,请使用“\”转义空格。这只适用于Linux。