dongyao5186 2013-12-14 07:31
浏览 27
已采纳

将各种视频文件上传到public_html

How can I allow users to upload every kind of video file to public_html? I'm using this code but it only allows me to upload mp4 video and not mov or 3gp. How can I get it to work

Here is my code:

<?php
include('config.php');
$allowedExts = array("jpg", "jpeg", "gif", "png", "mov", "mp4", "3gp", "ogg");
$extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);

if ((($_FILES["file"]["type"] == "video/mov")
|| ($_FILES["file"]["type"] == "video/mp4")
|| ($_FILES["file"]["type"] == "video/3gp")
|| ($_FILES["file"]["type"] == "video/ogg")
|| ($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/png"))

&& ($_FILES["file"]["size"] < 999999999)
&& in_array($extension, $allowedExts))

{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 999999999) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

if (file_exists("upload/" . $_FILES["file"]["name"]))
  {
  echo $_FILES["file"]["name"] . " already exists. ";
  }
 else
  {
  move_uploaded_file($_FILES["file"]["tmp_name"],
  "upload/" . $_FILES["file"]["name"]);
  // If file has uploaded successfully, store its name in data base

  echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
  }
  }
  }
  else
  {
  echo "Invalid file";
  }
  ?>
  • 写回答

3条回答 默认 最新

  • douyue5856 2013-12-14 07:38
    关注

    You can check MIME_TYPE that is reported in type key of uploaded file;
    And instead of checking ach individual type match against all videos:
    So, change this:

    if ((($_FILES["file"]["type"] == "video/mov")
    || ($_FILES["file"]["type"] == "video/mp4")
    || ($_FILES["file"]["type"] == "video/3gp")
    || ($_FILES["file"]["type"] == "video/ogg")
    || ($_FILES["file"]["type"] == "image/gif")
    || ($_FILES["file"]["type"] == "image/jpeg")
    || ($_FILES["file"]["type"] == "image/png"))
    
    && ($_FILES["file"]["size"] < 999999999)
    && in_array($extension, $allowedExts))
    

    to a RegEx match like this:

    if(preg_match('#^video/.*$#',$_FILES["file"]["type"]) && ($_FILES["file"]["size"] < 999999999) 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)