为什么上传torrent的时候没问题,上传mp4的时候就提示文件类型不对
而且echo($_FILES['userfile']['name']);输出为空  case "mp4":
$uploaddir = '../mp4/';
$uploaddir2 = 'mp4/';
echo($_FILES['userfile']['name'][$key]);
$timename=time();
$uploadfile = $uploaddir.$timename.$_FILES['userfile']['name'];
$uploadfile2=$uploaddir2.$timename.$_FILES['userfile']['name'];
if ($_FILES['userfile']['size']>52428800)
{
print "您上传的文件太大";
exit(0);
}
//print($_FILES['userfile']['type']);
switch ($_FILES['userfile']['type']) {
case "application/octet-stream":
break;
default:
print "您上传的文件类型不对<a href='up.php?class=mp4'>重新上传</a>";
exit(0);
break;
}
$filetype=explode(".",$uploadfile);
if ($filetype[count($filetype)-1]!="torrent"&&$filetype[count($filetype)-1]!="mp4"){
print "您上传的文件类型不对<a href='up.php?class=mp4'>重新上传</a>";
exit(0);

if (move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile))
{}
print "文件上传成功";
print "<script language='javascript'>parent.document.getElementById('mp4').value+='http://www.hzhu.com/".$uploadfile2."';</script>" ;
print "<script language='javascript'>parent.document.getElementById('mp4').value+=\"\\r\\n\";</script>";
print "<script language='javascript'>document.getElementById('upload').style.display='none';</script>";
print "<a href='up.php?class=mp4'>继续上传</a>";
}
else
{
print "上传文件失败!  文件的错误信息:\n";
switch ($_FILES['userfile']['error'])
{
case 1:
print "您所上传的文件太大\n";
print "<a href='up.php?class=mp4'>重新上传</a>";
break;
case 2:
print "您所上传的文件太大\n";
print "<a href='up.php?class=mp4'>重新上传</a>";
break;
case 3:
print "只有部分文件上传\n";
print "<a href='up.php?class=mp4'>重新上传</a>";
break;
case 4:
print "没有上传文件\n";
print "<a href='up.php?class=mp4'>重新上传</a>";
break;
default:
print "其它不明错误";
print "<a href='up.php?class=mp4'>重新上传</a>";
}
}
break;

解决方案 »

  1.   

    如果上传文件类型$_FILES['userfile']['type']为 "application/octet-stream"时,就会提示
    看看,mp4文件的$_FILES['userfile']['type']为啥?
      

  2.   

    $_FILES['userfile']['type']
    是空的,不知道为什么,上传mp4的文件就是空的,其它文件就不会
      

  3.   

    mp4可能服务器不识别这种类型吧.
    在apache/config/mime.types这个文件里加上这个类型再尝试一下.
      

  4.   

    找到问题所在啦,原来是php.ini里上传的脚本为10M,如果上传超过10M的东西就传不上去啦,改一下就ok啦