午夜国产狂喷潮在线观看|国产AⅤ精品一区二区久久|中文字幕AV中文字幕|国产看片高清在线

    帝國CMS實現(xiàn)即彈出下載txt等格式
    來源:易賢網(wǎng) 閱讀:913 次 日期:2014-08-19 14:53:18
    溫馨提示:易賢網(wǎng)小編為您整理了“帝國CMS實現(xiàn)即彈出下載txt等格式”,方便廣大網(wǎng)友查閱!

    測試版本:帝國CMS6.5

    功能位置:后臺->其他管理->下載模型管理->管理地址前綴

    相關(guān)函數(shù):e/class/DownSysFun.php DoTypeForDownurl() , QDownLoadFile() , DownSoft()

    功能解釋:

    HEADER:使用header轉(zhuǎn)向,通常設(shè)為這個。

    META:直接轉(zhuǎn)自,如果是FTP地址推薦選擇這個。

    READ:使用PHP程序讀取,防盜鏈較強,但較占資源,服務(wù)器本地小文件可選擇。

    帝國CMS彈出下載txt,xls等說明

    1.看下面粘貼的帝國原函數(shù)DoTypeForDownurl() Header 與 Meta 兩種方式都使用的真實地址,在這兩種方式下瀏覽器不能讀取的文件格式,例如RAR,ZIP等將直接直接彈出一個真實地址下載,txt等瀏覽器可讀的文件格式則直接在線瀏覽;

    2.默認不選擇前綴的情況下,使用是Header

    3.READ 這種方式下是利用PHP讀取文件,并傳遞給瀏覽器,無論 RAR 還是TXT都會彈出下載,而不是瀏覽器直接讀取,彈出的地址也是加密的地址類似:xxx.com/enews=DownSoft& classid=39&id=11&pathid=0&pass=7b9516932a88d44b4e4610e209f6288d&p=22:::J2qCrBGqmrxK

    4.READ的加密地址判斷是否有下載權(quán)限,也就是地址是否正確是由e/class/DownSysFun.php中DownSoft()函數(shù)來判 斷的,經(jīng)測試如果不更改后臺->系統(tǒng)設(shè)置->模型設(shè)置->下載驗證碼 的情況下流傳出去是可以持續(xù)被下載的(沒有用戶組,積分等判斷限制 如果要避免那么e/class/DownSysFun.php 第一行 $DownSys_CheckIp=0; 中的0改為1),帝國CMS也是通過這個方式來防盜鏈;

    5.如果我不想使用下載地址前綴,而讓TXT等格式可以彈出下載,那么你可以在e/class/DownSysFun.php中搜索DoTypeForDownurl($downurl,$downurlr['downtype']);上一行加入如下代碼:

    view plaincopy to clipboardprint?

    //trylife add check type 20101231

    //不使用下載地址前綴 讓txt等瀏覽器可讀類型文件彈出下載

    //A.F4

    $type2r=array(".xls",".txt",);

    if(in_array(GetFiletype($downurl),$type2r))

    {

    $downurlr['downtype']=2;

    }

    相關(guān)函數(shù)參閱

    view plaincopy to clipboardprint?

    //ecms e/class/DownSysFun.php

    function DownSoft($classid,$id,$pathid,$p,$pass){

    global $empire,$public_r,$level_r,$class_r,$emod_r,$user_tablename,$user_userid,$user_rnd,$user_group,$user_userfen,$user_userdate,$user_username,$dbtbpre;

    $id=(int)$id;

    $classid=(int)$classid;

    $pathid=(int)$pathid;

    if(emptyempty($id)||emptyempty($p)||emptyempty($classid))

    {

    printerror("ErrorUrl","history.go(-1)",1);

    }

    $p=RepPostVar($p);

    $p_r=explode(":::",$p);

    $userid=$p_r[0];

    $rnd=$p_r[1];

    //驗證碼

    $cpass=md5(ReturnDownSysCheckIp()."wm_chief".$public_r[downpass].$userid);

    if($cpass<>$pass)

    {

    printerror("FailDownpass","history.go(-1)",1);

    }

    //表不存在

    if(emptyempty($class_r[$classid][tbname]))

    {

    printerror("ExiestSoftid","history.go(-1)",1);

    }

    $mid=$class_r[$classid][modid];

    $tbname=$class_r[$classid][tbname];

    $ok=1;

    $r=$empire->fetch1("select * from {$dbtbpre}ecms_".$tbname." where id='$id' and classid='$classid'");

    if(emptyempty($r[id]))

    {

    printerror("ExiestSoftid","history.go(-1)",1);

    }

    //副表

    if($emod_r[$mid]['tbdataf']&&$emod_r[$mid]['tbdataf']<>',')

    {

    $selectdataf=substr($emod_r[$mid]['tbdataf'],1,-1);

    $finfor=$empire->fetch1("select ".$selectdataf." from {$dbtbpre}ecms_".$tbname."_data_".$r[stb]." where id='$r[id]'");

    $r=array_merge($r,$finfor);

    }

    //區(qū)分下載地址

    $path_r=explode("rn",$r[downpath]);

    if(!$path_r[$pathid])

    {

    printerror("ExiestSoftid","history.go(-1)",1);

    }

    $showdown_r=explode("::::::",$path_r[$pathid]);

    $downgroup=$showdown_r[2];

    //下載權(quán)限

    if($downgroup)

    {

    $userid=(int)$userid;

    //取得會員資料

    $u=$empire->fetch1("select * from ".$user_tablename." where ".$user_userid."='$userid' and ".$user_rnd."='$rnd'");

    if(emptyempty($u[$user_userid]))

    {printerror("MustSingleUser","history.go(-1)",1);}

    //下載次數(shù)限制

    $setuserday="";

    if($level_r[$u[$user_group]][daydown])

    {

    $setuserday=DoCheckMDownNum($userid,$u[$user_group]);

    }

    if($level_r[$downgroup][level]>$level_r[$u[$user_group]][level])

    {

    printerror("NotDownLevel","history.go(-1)",1);

    }

    //點數(shù)是否足夠

    $showdown_r[3]=intval($showdown_r[3]);

    if($showdown_r[3])

    {

    //---------是否有歷史記錄

    $bakr=$empire->fetch1("select id,truetime from {$dbtbpre}enewsdownrecord where id='$id' and classid='$classid' and userid='$userid' and pathid='$pathid' and online=0 order by truetime desc limit 1");

    if($bakr[id]&&(time()-$bakr[truetime]<=$public_r[redodown]*3600))

    {}

    else

    {

    //包月卡

    if($u[$user_userdate]-time()>0)

    {}

    //點數(shù)

    else

    {

    if($showdown_r[3]>$u[$user_userfen])

    {

    printerror("NotEnoughFen","history.go(-1)",1);

    }

    //去除點數(shù)

    $usql=$empire->query("update ".$user_tablename." set ".$user_userfen."=".$user_userfen."-".$showdown_r[3]." where ".$user_userid."='$userid'");

    }

    //備份下載記錄

    $utfusername=doUtfAndGbk($u[$user_username],1);

    BakDown($classid,$id,$pathid,$userid,$utfusername,$r[title],$showdown_r[3],0);

    }

    }

    //更新用戶下載次數(shù)

    if($setuserday)

    {

    $usql=$empire->query($setuserday);

    }

    }

    //總下載數(shù)據(jù)增一

    $usql=$empire->query("update {$dbtbpre}ecms_".$class_r[$classid][tbname]." set totaldown=totaldown+1 where id='$id'");

    $downurl=stripSlashes($showdown_r[1]);

    $downurlr=ReturnDownQzPath($downurl,$showdown_r[4]);

    $downurl=$downurlr['repath'];

    //防盜鏈

    @include(ECMS_PATH."e/class/enpath.php");

    $downurl=DoEnDownpath($downurl);

    db_close();

    $empire=null;

    //trylife add check type 20101231

    //不使用下載地址前綴 讓txt等瀏覽器可讀類型文件彈出下載

    //A.F4

    $type2r=array(".doc",".xls",".docx",".ppt",".pptx",".txt","pdf",);

    if(in_array(GetFiletype($downurl),$type2r))

    {

    $downurlr['downtype']=2;

    }

    //trylife add check type 20101231 [e]

    DoTypeForDownurl($downurl,$downurlr['downtype']);

    }

    //下載操作

    function DoTypeForDownurl($downurl,$type=0){

    global $public_r;

    if($type==1)//meta

    {

    echo"<META content='"0;url=$downurl"' http-equiv='"refresh"'>";

    }

    elseif($type==2)//read

    {

    QDownLoadFile($downurl);

    }

    else//header

    {

    Header("Location:$downurl");

    }

    exit();

    }

    //下載

    function QDownLoadFile($file){

    global $public_r;

    if(strstr($file,""))

    {

    $exp="";

    }

    elseif(strstr($file,"/"))

    {

    $exp="/";

    }

    else

    {

    Header("Location:$file");

    exit();

    }

    if(strstr($file,$exp."e".$exp)||strstr($file,"..")||strstr($file,"?")||strstr($file,"#"))

    {

    Header("Location:$file");

    exit();

    }

    if(strstr($file,$public_r[fileurl]))

    {

    $file=str_replace($public_r[fileurl],'/d/file/',$file);

    }

    if(!strstr($file,"://"))

    {

    if(!file_exists($file))

    {

    $file="../..".$file;

    }

    }

    $filename=GetDownurlFilename($file,$exp);

    if(empty($filename))

    {

    Header("Location:$file");

    exit();

    }

    //下載

    Header("Content-type: application/octet-stream");

    //Header("Accept-Ranges: bytes");

    //Header("Accept-Length: ".$filesize);

    Header("Content-Disposition: attachment; filename=".$filename);

    echo ReadFiletext($file);

    }

    更多信息請查看IT技術(shù)專欄

    更多信息請查看CMS教程
    易賢網(wǎng)手機網(wǎng)站地址:帝國CMS實現(xiàn)即彈出下載txt等格式
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇剩?/div>
    相關(guān)閱讀CMS教程

    2025國考·省考課程試聽報名

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)