【发布时间】:2013-07-04 08:24:00
【问题描述】:
我正在创建一个网站,允许用户上传他们想要的任何媒体文件(图像、视频和音频文件)。然而,页面实际允许我上传的内容似乎很随机。表单在HTML,recieveFile 脚本在PHP。
我的 HTML 表单如下所示:
<form action="recieveFile.php?id=0" method="POST" enctype="multipart/form-data">
<input type="file" name="media" value="Choose file"/>
<br/><input type="submit" value="Upload"/>
</form>
我的 PHP Recieve 脚本如下所示:
if (isset($_FILES['media']))
{
saveFileFunctions();
}
else
{
echo "No media files were uploaded!";
}
现在每次上传图片时,我都会进入 saveFileFunctions。它也适用于 .txt 和 .pdf。但是,每当我尝试使用 .mov 或 .mp4 文件时,它都会直接将我带到最后一个回显,就好像 $_FILES['media'] 是空的一样。有人知道为什么我的表单似乎只发送某些文件吗?
【问题讨论】:
-
我认为文件大小超过了
max_file_upload_size设置。 -
尝试检查
$_FILES['file']['error']见php.net -
如果文件大小超过 2M 左右,则不会设置
$_FILES['file']。我将php5/apache/php.ini更改为max_upload_size = 50M,但它仍然只接受较小的文件。 -
上传2MB到10MB左右的文件还有一个问题,它会设置
$_FILES['media'],但不是tmp_name参数,但我仍然可以找到文件的扩展名。现在很迷茫。