为了账号安全,请及时绑定邮箱和手机立即绑定

php下载html文件,图片无法显示,麻烦各位大神帮帮忙

php下载html文件,图片无法显示,麻烦各位大神帮帮忙

PHP
苏苏麻洁 2016-11-30 10:15:35
<?phpsession_start();error_reporting(0);$un = $_SESSION['username'];require_once("../model/conn.php");require_once '../function/npLog.php';$report_dir = $_SERVER["DOCUMENT_ROOT"]."/report/FILES/";$operation = $_GET['h'] == 1 ? "delete" : "download";if($operation == "download") // 0{    $n = $_GET['n'];    if($n == 1)    {        $type = "single";        $format = "html";    }    else if($n == 2)    {        $type = "single";        $format = "pdf";    }    else if($n == 3)    {        $type = "all";        $format = "html";    }    else if($n == 4)    {        $type = "all";        $format = "pdf";    }    if($type == "single")     {        $filename = $_GET[filename];        if (!file_exists($report_dir.$filename))//查看报表文件是否存在        {                echo "can't find file";              exit;          }            if($format == "html")        {        $files = array($filename);            download_html_report_files($report_dir.$filename, $files);        }        else if($format == "pdf")        {            download_pdf_files($report_dir.$filename);        }    }    else if($type == "all")     {    $file_path = $report_dir;    set_time_limit(0);        list($input_start_time,$input_end_time) = explode("_",$_REQUEST[startToend]);        $start_time = date("Ymd",strtotime("$input_start_time")); $end_time = date("Ymd",strtotime("$input_end_time")); if($format == "pdf") { download_files($file_path,$start_time, $end_time,$format); } else if($format == "html") { download_files($file_path,$start_time,$end_time ,$format); }    }}else if($operation == "delete"){    $dir = $_SERVER["DOCUMENT_ROOT"].'/report/FILES/';     $dir1 = $_SERVER["DOCUMENT_ROOT"].'/report/IMG/';    $filename=$_GET['filename'];    if(!file_exists($dir.$filename ))    {            echo   "can't   find   file";          exit;      }        else    {         $re2="删除报表".$filename."成功!";        $myAudit['audit_type'] = "'报表管理'";        $myAudit['usr_name'] = "'".$un."'";        $myAudit['client_ip'] = "'".getenv('REMOTE_ADDR')."'";        $myAudit['action_result'] = 1;        $myAudit['action_desc'] = "' 系统管理员  ".$un.$re2." ' ";        np_log($myAudit);        $imgfilename2=substr($filename,-3,-1);        if($imgfilename2=='pd')        {            unlink($dir . $filename);            header("Location: ./FILES/index.php");        }        else         {            $imgfilename=substr($filename,0,-5);            $files = scandir($dir1, 1);            foreach ($files as $index => $filename1)            {                $filename2=substr($filename1,0,strlen($imgfilename));                if ($imgfilename == $filename2)                {                    $imgstring.=$dir1.$filename1." ";                }             }             exec("rm -rf $imgstring");            unlink($dir.$filename);            header("Location: ./FILES/index.php");        }    }}function download_files($file_path, $start_time=null,$end_time=null ,$format){ $files = scandir($file_path, 1); $suffix = ".$format"; $files_array = array(); foreach ($files as $index => $filename){ $pos = strpos($filename, $suffix); if ($pos != false) { if(strpos($filename,"_")){ $month_files = substr($filename,stripos($filename,"_")+1,8); }else{ $month_files = substr($filename, 0, 8); } if($month_files >= $start_time && $month_files <= $end_time) { array_push($files_array, $filename); } } } if($format == "pdf") { download_pdf_files($file_path,$files_array,$start_time,$end_time); } else if($format == "html") { download_html_report_files($file_path,$files_array,$start_time,$end_time); } }function download_pdf_files($file_path,$files_array,$start_time=null,$end_time=null){    if(is_dir($file_path))    {        $today = date("YmdHis");        $tmp_dir = "pdf_".$start_time."_".$end_time;        $cmd = "cd $file_path;";        $cmd .= "mkdir -p $tmp_dir;";        foreach($files_array as $index => $file)        {        $cmd .= "cp -a $file_path$file $tmp_dir;";      }        $cmd .= "tar cvzf $tmp_dir.tgz $tmp_dir;";        $cmd .= "rm -rf $tmp_dir;";        exec($cmd);        file_export($file_path.$tmp_dir.".tgz");        $cmd = "rm -rf $tmp_dir.tgz;";        exec($cmd);    }    else    {        file_export($file_path);    }}function download_html_report_files($file_path,$files_array,$start_time=null,$end_time=null){    if(is_dir($file_path))    {        $output_dir = "html_".$start_time."_".$end_time;        $files_dir = $file_path;    }    else    {    $names = split("\.",basename($file_path));      $output_dir =$names[0];        $files_dir = dirname($file_path);    }    $cmd = "mkdir -p $output_dir/HTML;";    $cmd .= "mkdir -p $output_dir/IMG;";    $cmd .= "cp ".$files_dir."/htmreport.css ".$output_dir."/HTML;";    foreach ($files_array as $index => $file)    {      $basename = split("\.", $file);            $cmd .= "cp ".$files_dir."/".$basename[0].".html ".$output_dir."/HTML;";        $image_files = get_html_image_files($basename[0]);        $cmd .= "cp ";        foreach ($image_files as $image_file)         {            $cmd .= "$image_file ";         }        $cmd .= " $output_dir/IMG/;";    }    $output_file = $output_dir.".tgz";    $cmd .= "cd $output_dir;cd ..; tar cvzf ".$output_file." ".$output_dir.";";    $cmd .= "rm -rf ".$output_dir.";";    exec($cmd);    file_export($output_file);    exec("rm -rf $output_file");}function get_html_image_files($basename) {    $timeinfo = substr($basename,-14,-1);    $image_dir = $_SERVER[DOCUMENT_ROOT].'/report/IMG/';    $image_files = array();    $files = scandir($image_dir,1);    foreach ($files as $file)    {        $image_basename = substr($file,0,strlen($timeinfo));         if($image_basename == $timeinfo) $image_files[] = $image_dir.$file;    }    return $image_files;}function file_export($file){   //First, see if the file exists   if (!is_file($file)) { die("<b>404 File not found!</b>"); }      //Gather relevent info about file   $len = filesize($file);   $filename = basename($file);   $file_extension = strtolower(substr(strrchr($filename,"."),1));      //This will set the Content-Type to the appropriate setting for the file   switch( $file_extension ) {       case "exe": $ctype="application/octet-stream"; break;       case "zip": $ctype="application/x-zip-compressed"; break;       case "rar": $ctype="application/x-rar"; break;       default: $ctype="application/force-download";   }      //Begin writing headers   header("Cache-Control:");   header("Cache-Control: public");      //Use the switch-generated Content-Type   header("Content-Type: $ctype");   if (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE")) {       # workaround for IE filename bug with multiple periods / multiple dots in filename       # that adds square brackets to filename - eg. setup.abc.exe becomes setup[1].abc.exe       $iefilename = preg_replace('/\./', '%2e', $filename, substr_count($filename, '.') - 1);       header("Content-Disposition: attachment; filename=\"$iefilename\"");       //header("Content-Range: $from-$to fsize");  加上压缩包头信息不正确       //header("Content-Length: $content_size");   加上压缩包头信息不正确   } else {       header("Content-Disposition: attachment; filename=\"$filename\"");       //header("Content-Range: $from-$to fsize");  加上压缩包头信息不正确       //header("Content-Length: $content_size");   加上压缩包头信息不正确   }   header("Accept-Ranges: bytes");   //header('Expires: '.gmdate("D, d M Y H:i:s", mktime(date("H")+2, date("i"), date("s"), date("m"), date("d"), date("Y"))).' GMT');      $size=filesize($file);   //open the file   $fp=fopen("$file","rb");   //ek to start of missing part   fseek($fp,$range);   //start buffered download   while(!feof($fp)){       //reset time limit for big files       print(fread($fp,1024*8));       //flush();   这个是多余的函数,加上会使压缩包下载不完整       //ob_flush();  这个也是多余的函数,加上会使压缩包下载不完整   }   fclose($fp);}
查看完整描述

1 回答

?
单色彩虹

TA贡献34条经验 获得超11个赞

图片路径,图片路径,图片路径!

查看完整回答
反对 回复 2017-02-26
  • 1 回答
  • 0 关注
  • 2105 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号