public function downAction()
 {
     $file = $this->FileRoot . $this->request->getQuery('file');
     if (is_file($file)) {
         $File = new File();
         $File->down($file);
     } else {
         return FALSE;
     }
 }
Example #2
0
 /**
  * 备份文件下载
  */
 public function public_down()
 {
     $admin_founders = explode(',', C('system', 'admin_founders'));
     if (!in_array($this->userid, $admin_founders)) {
         showmessage(L('only_fonder_operation'));
     }
     $datadir = $_GET['pdoname'];
     $filename = $_GET['filename'];
     $fileext = File::get_suffix($filename);
     if ($fileext != 'sql') {
         showmessage(L('only_sql_down'));
     }
     File::down(DATA_PATH . 'bakup' . DIRECTORY_SEPARATOR . $datadir . DIRECTORY_SEPARATOR . $filename);
 }
Example #3
0
 public function download()
 {
     $a_k = trim($_GET['a_k']);
     $yun_auth_key = md5($this->auth_key . $_SERVER['HTTP_USER_AGENT']);
     $a_k = String::authcode($a_k, 'DECODE', $yun_auth_key);
     if (empty($a_k)) {
         showmessage(L('illegal_parameters'));
     }
     unset($i, $m, $f, $t, $ip);
     parse_str($a_k);
     if (isset($i)) {
         $downid = intval($i);
     }
     if (!isset($m)) {
         showmessage(L('illegal_parameters'));
     }
     if (!isset($modelid)) {
         showmessage(L('illegal_parameters'));
     }
     if (empty($f)) {
         showmessage(L('url_invalid'));
     }
     if (!$i || $m < 0) {
         showmessage(L('illegal_parameters'));
     }
     if (!isset($t)) {
         showmessage(L('illegal_parameters'));
     }
     if (!isset($ip)) {
         showmessage(L('illegal_parameters'));
     }
     $starttime = intval($t);
     if (preg_match('/(php|phtml|php3|php4|jsp|dll|asp|cer|asa|shtml|shtm|aspx|asax|cgi|fcgi|pl)(\\.|$)/i', $f) || strpos($f, ":\\") !== FALSE || strpos($f, '..') !== FALSE) {
         showmessage(L('url_error'));
     }
     $fileurl = trim($f);
     if (!isset($downid) || empty($fileurl) || !preg_match("/[0-9]{10}/", $starttime) || !preg_match("/[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}/", $ip) || $ip != IP) {
         showmessage(L('illegal_parameters'));
     }
     $endtime = TIME - $starttime;
     if ($endtime > 3600) {
         showmessage(L('url_invalid'));
     }
     if ($m) {
         $fileurl = trim($s) . trim($fileurl);
     }
     //远程文件
     if (strpos($fileurl, ':/') && strpos($fileurl, C('attachment', 'upload_url')) === false) {
         header("Location: {$fileurl}");
     } else {
         if ($d == 0) {
             header("Location: " . $fileurl);
         } else {
             $fileurl = str_replace(array(C('attachment', 'upload_url'), '/'), array(C('attachment', 'upload_path'), DIRECTORY_SEPARATOR), $fileurl);
             $filename = basename($fileurl);
             //处理中文文件
             if (preg_match("/^([\\s\\S]*?)([�-�][@-�])([\\s\\S]*?)/", $fileurl)) {
                 $filename = str_replace(array("%5C", "%2F", "%3A"), array("\\", "/", ":"), urlencode($fileurl));
                 $filename = urldecode(basename($filename));
             }
             $ext = File::get_suffix($filename);
             $filename = date('Ymd_his') . String::rand_string(3) . '.' . $ext;
             File::down($fileurl, $filename);
         }
     }
 }
Example #4
0
 public static function down($file)
 {
     File::down($file);
 }