Php文件上传大写扩展不起作用

时间:2013-08-08 21:32:54

标签: php html upload

我在上传来自HTML表单的文件时遇到问题。它仅在扩展名不是大写时才有效。上传.jpg将起作用,但.JPG不会(甚至在重命名系统上的文件后)。我完全感到困惑,我对文件扩展名没有限制,因为我的网站是非常个人使用的。这是html表单

<form enctype="multipart/form-data" action="uploader.php" method="post">
Browse file : <input type="file" name="img"><br>
Nom : <input type="text" name="nom"><br>
Prix : <input type="text" name="prix"><br>
Description: <input type="text" name="descr"><br>
<input type="submit" value="Upload">
</form>

这是我上传的脚本。

$target_path = "../photos/" . $_FILES['img']['name'];

if(move_uploaded_file($_FILES['img']['tmp_name'], $target_path)){
    code here
}

如果有必要,我会提供更多信息,谢谢你的帮助!

2 个答案:

答案 0 :(得分:0)

我认为此问题涉及特定php.ini文件中的文件上载大小配置,而不是文件扩展名的情况。文件上载模块应不区分大小写。例如,WAMP的默认上载大小设置为最大文件大小2M。我还没有加载大写文件扩展名的问题,当我将文件的文件大小与大写扩展名进行比较时使用小写字母,大写字母大小超过2M而下方大小不知道 - 我不知道这是不是是一个窗口的东西,case表示文件大小。在任何情况下,发生的是在单个文件上载的情况下,使用单个键值对填充$ _FILES assoc数组。键是您在表单输入中设置的名称值,以及关于文件上载方面的关联数组的值,包括键:名称,类型,大小,tmp_name和错误。上传文件模块可以填充文件名,但是当遇到大于配置设置的大小时,不会填充其余的assoc数组。因此,文件不会移动到已配置的tmp目录中,未设置类型,未设置大小,但是,错误设置为1.因为文件永远不会上载到tmp目录,所以您无法提取它并移动它。解决方案,转到你的php.ini文件,搜索文本&#34;文件上传&#34;并检查上传的最大文件大小,并将其与您的测试文件进行比较,相应地编辑您的php.ini。

答案 1 :(得分:0)

遇到相同的问题-仅减小目标路径的大小写

$target_path =  $target_dir . strtolower(basename($_FILES["fileToUpload"]["name"]));