电脑PC端:http://video.supermindsoft.com/
处理总结:1.数据库还原成旧的。
2.C:\wwwroot\video.supermindsoft.com\app\models\csdjskins.php 中 视频属性返回为空就行。
//获取视频属性
function djinfo($dir)
{
//if(!file_exists($dir)) return '';
//if(substr(php_uname('s'),0,7)=="Windows"){ //LINUX系统暂时不支持
//$player= new COM("WMPlayer.OCX");
//$media = $player->newMedia($dir);
//$time = $media->duration; //获取持续时间
//@$s_bitrate = $media->getItemInfo(Bitrate); //获取位速
//@$size=$media->getItemInfo(FileSize);//大小
//$time = sprintf("%01.0f", $time);
//$s_duration = strftime("%H:%M:%S",$time-28800);
//$s_bitrate = str_replace(substr($s_bitrate,-3),"",$s_bitrate)." Kbps";
//$s_size=$this->formatsize($size);
//ob_flush();flush();
//return $s_size.'|'.$s_bitrate.'|'.$s_duration;
//}else{
return '';
//}
}
分析过程:
1.分析了文件上传都正常,服务器设置也正常。
js文件上传示例Uploadify小黄人软件测试OK.rar
HTTP/1.1 500 Server Error
Date: Wed, 26 Apr 2017 03:16:49 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Content-Length: 116
PHP Fatal error: Class 'COM' not found in C:\wwwroot\video.supermindsoft.com\app\models\csdjskins.php on line 3739
找到该行
line 3739: $player= new COM("WMPlayer.OCX");
到网上找wmplayer.ocx下载 没找到
直接注释 看是否有效?无效数据。
因为源码是utf-8格式,在windows搜索内容关键词是查不出来的。所以我把djinfo先注释掉,操作看哪里报错,就知道是哪里调用了。
PHP Fatal error: Call to undefined method CsdjSkins::djinfo() in C:\wwwroot\video.supermindsoft.com\app\controllers\user\upload.php on line 178
upload_save() { //多文件上传
显示/attachment/dance/201704/26/20170426141619_46933.mp4=sex==sex==sex=
上传视频成功,问题解决了。
3.但是点上传保存显示"抱歉,视频发表失败,请联系管理员"
查到
C:\wwwroot\video.supermindsoft.com\app\controllers\user\video.phpadd_save()这个函数
发现是插入数据库为0
$res=$this->CsdjDB->get_insert('dance',$video);
if($res>0){
if($daycount < Cion_Num && Cion_Upvideo>0 && User_DjFun==2){ //奖励金币
$title.=',系统奖励给您'.Cion_Upvideo.'个金币';
$this->db->query("update ".CS_SqlPrefix."user set CS_Cion=CS_Cion+".Cion_Upvideo." where CS_ID='".$this->session->userdata('cs_id')."'");
}
//写入动态
$dt['CS_CID']=1;
$dt['CS_DID']=$res;
$dt['CS_YID']=$video['CS_YID'];
$dt['CS_User']=$this->session->userdata('cs_name');
$dt['CS_Title']=$video['cs_name'];
$dt['CS_AddTime']=date('Y-m-d H:i:s');
$this->CsdjDB->get_insert('dt',$dt);
$this->session->unset_userdata('token');
$this->CsdjSkins->Msg_url('恭喜您,视频发表成功'.$title.'!',$url);
}else{
$this->CsdjSkins->Msg_url('抱歉,视频发表失败,请联系管理员!','javascript:history.back();');
}
继续查底层
C:\wwwroot\video.supermindsoft.com\app\models\csdjdb.php
function get_insert ($table,$arr) //增加
{
if($arr){
$this->db->insert($table,$arr);
return $this->db->insert_id();
}else{
return false;
}
}
这是一个标准函数,那可能是参数问题。table表 arr数组
确定为array数组video的问题
发送cs_name=%C0%DA+%C1%D6%C9%ADsssssssss&cs_pic=&cs_cid=1&cs_tid=0&cs_tags=&cs_cion=1&cs_singer=&gslist=1&zm=P&cs_singerid=&cs_content=&cs_playurl=%2Fattachment%2Fdance%2F201704%2F27%2F20170427101947_45101.mp4&cs_downurl=&cs_dx=&cs_yz=&cs_sc=&token=78d39a940afd977663749a124c328493
cs_name=>磊 林森sssssssss
cs_cid=>1
cs_tid=>0
cs_tags=>
cs_cion=>1
cs_singerid=>13
cs_singer=>
cs_content=>
cs_playurl=>/attachment/dance/201704/27/20170427102801_57622.mp4
cs_dx=>
cs_yz=>
cs_sc=>
cs_pic=>
CS_DownUrl1=>/attachment/dance/201704/27/20170427102801_57622.mp4
CS_UID=>111
CS_User=>xhrrj
CS_AddTime=>2017-04-27 10:28:08
CS_YID=>1
与数据库对比,发现CS_ID是空的,数据库设置不对,CS_ID应该是自动增加的。
原因:我当时采集时,使用数据库方式入库,插入数据库时,修改了表结构,这奇怪了。不管它,数据库还原成旧的就行。
include("D:\wwwroot\Authen\wmplayer.ocx");