Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3737
  • 博文数量: 1
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2017-10-27 21:52
文章分类
文章存档

2017年(1)

我的朋友
最近访客

分类: PHP

2017-10-27 22:07:10

上传视频跟上传普通文件一样,php表单自带2进制上传文件,所以相对于数据库上传文件和视频来说简单太多了。
下面用一个简单的实例来说明怎么上传视频。
文件:fun_upload.php、input.php、upload.php

点击(此处)折叠或打开

  1. input.php

    请选择您要上传的文件:

    请选择您要上传的文件:

    请选择您要上传的文件:

    请选择您要上传的文件:



    ?>
    upload.php
    //echo "
    ";
    //print_r($_FILES);
    //echo "
    ";
    //exit;
    header('content-type:text/html;charset=utf-8');
    include_once 'fun_upload.php';
    foreach ($_FILES as $fileInfo){
    $file[]=uploadFile($fileInfo);
    }
    ?>
    fun_upload.php
    function uploadFile( $fileInfo,$path="uploads",$allowExt=array('jpeg','jpg','png','tif','mp4','mp3'),$maxSize=104857600
    ){
    $filename=$fileInfo["name"];
    $tmp_name=$fileInfo["tmp_name"];
    $size=$fileInfo["size"];
    $error=$fileInfo["error"];
    $type=$fileInfo["type"];
     
     //服务器端设定限制
    $ext=pathinfo($filename,PATHINFO_EXTENSION);
     echo 'ert='.$ert;
     //目的信息
     //$uniName=md5(uniqid(microtime(true),true)).'.'.$ext;//生成唯一字符串的标识
     //$destination=$path."/".$uniName;
     $path='a'.'/';
     if (!file_exists($path)) {  
      mkdir($path,0777,true);
      chmod($path, 0777);
     }
     $destination=$path.$filename;
     //echo ',uniName='.$uniName.','.'destination='.$destination;测试
    if ($error==0) {
      if ($size>$maxSize) {
        exit("上传文件过大!");
      }
      if (!in_array($ext, $allowExt)) {
        exit("非法文件类型");
      }
      if (!is_uploaded_file($tmp_name)) {
        exit("上传方式有误,请使用post方式");
      }
      //判断是否为真实图片(防止伪装成图片的病毒一类的
      /*if (!getimagesize($tmp_name)) {//getimagesize真实返回数组,否则返回false
        exit("不是真正的图片类型");
      }*/
      if (@move_uploaded_file($tmp_name, $destination)) {//@错误抑制符,不让用户看到警告
        echo "文件".$filename."上传成功!";
      }else{
        echo "文件".$filename."上传失败!";
      }
    }else{
      switch ($error){
        case 1:
          echo "超过了上传文件的最大值,请上传2M以下文件";
          break;
        case 2:
          echo "上传文件过多,请一次上传20个及以下文件!";
          break;
        case 3:
          echo "文件并未完全上传,请再次尝试!";
          break;
        case 4:
          echo "未选择上传文件!";
          break;
        case 6:
          echo "找不到临时文件夹";
            break;
        case 7:
          echo "文件写入失败";
          break;
        case 8: 
          echo "上传的文件被PHP扩展程序中断";
          break;
          default:
          echo '其他错误';
      }
    }
    return $destination;
    }
    ?>
注意:1.本机测试没有什么问题,上次服务器时,注意给上传文件的父目录赋777权限(即允许写入的功能)
2.更改配置文件,增大表单传输的大小,默认是2m,在php.ini文件下更改以下数据(php.ini目录自行百度)
(1)php.ini:upload_max_filesize 所上传的文件的最大大小。默认值2M。
(2)php.ini:memory_limit 本指令设定了一个脚本所能够申请到的最大内存字节数,默认值8M。如果不需要任何内存上的限制,必须将其设为 -1。如果内存不够,则可能出现错误:Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)
(3)php.ini:post_max_size 设定POST数据所允许的最大大小。此设定也影响到文件上传。要上传大文件,该值必须大于 upload_max_filesize。
(4)php.ini:max_execution_time = 30 ; Maximum execution time of each script, in seconds
(5)php.ini:max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
简单的视频上传就好使了。

阅读(691) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~