我有一个非常标准的文件上传表单(也写入mysql数据库)。它在我的测试中运行良好,然后我去测试了一个用大写字母命名的文件。该文件不会上传。简单的解决方案我想,只需在上传之前使用'strtolower'重命名文件,但没有运气。也试过strtoupper,仍然没有运气。我想我也遇到了以数字开头的文件。 (我做了双重检查,是的,文件夹是可写的。)
$upload_dir = "/path/to/the/upload/folder/entries/";
$new_filename = mysql_insert_id()."_".$filename;
$tmp_name = $_FILES["filename"]["tmp_name"];
move_uploaded_file($tmp_name, $upload_dir . $new_filename);
非常感谢任何帮助。
答案 0 :(得分:1)
需要隔离发生错误的步骤 - 具体是什么意思,“文件不会上传”?没有文件到达服务器?重命名不起作用吗?执行插入的mysql语句是否未正确形成?如果文件永远不会到达服务器,那么你就没有任何东西可以调用strtolower。
获取一个已知的,可上传的文件,将其上传以确保其正常工作,然后将其重命名为大写版本,然后重试。如果picture.jpg工作,PICTURE.JPG?还是PICTURE.jpg?我想知道你的代码的前面部分是否有一些东西决定“.JPG”(或任何大写的扩展名)不是像“.jpg”那样的有效上传。