上传视频跟上传普通文件一样,php表单自带2进制上传文件,所以相对于数据库上传文件和视频来说简单太多了。
下面用一个简单的实例来说明怎么上传视频。
文件:fun_upload.php、input.php、upload.php
-
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
简单的视频上传就好使了。
阅读(740) | 评论(0) | 转发(0) |