コード例 #1
0
ファイル: Http.php プロジェクト: laiello/quickbug
 /**
  * 下载文件
  * 可以指定下载显示的文件名,并自动发送相应的Header信息
  * 如果指定了content参数,则下载该参数的内容
  * @param string $filename 下载文件名,要是绝对路径
  * @param string $showname 下载时显示的文件名,默认为下载的文件名
  * @param string $content  下载的内容
  * @return void
  */
 public static function download($filename = '', $showname = '', $content = '', $expire = 180)
 {
     //得到下载长度
     if (file_exists($filename)) {
         $length = filesize($filename);
     } elseif ($content != '') {
         $length = strlen($content);
     } else {
         throw new QP_Exception('QP_Http_Http 错误:没有设置 $filename 或 $content');
     }
     // 最到显示的下载文件名
     if ($showname == '') {
         $showname = $filename;
     }
     $showname = basename($showname);
     // 根据扩展名得到 MIME TYPE
     $infoArr = pathinfo($showname);
     $mimeType = QP_Func_Func::mimeType($infoArr['extension']);
     // 发送Http Header信息 开始下载
     Header("Content-type: {$mimeType}");
     Header("Accept-Ranges: bytes");
     Header("Accept-Length: " . $length);
     Header("Content-Disposition: attachment; filename=\"{$showname}\"");
     // 优先下载指定的内容再下载文件
     if ($content == '') {
         $file = @fopen($filename, "r");
         if (!$file) {
             throw new QP_Exception('QP_Http_Http 错误:下载文件打开失败 ' . $filename);
         }
         // 一次读 1K 内容
         while (!@feof($file)) {
             echo @fread($file, 1024 * 1000);
         }
         @fclose($file);
     } else {
         echo $content;
     }
     exit;
 }
コード例 #2
0
ファイル: Function.inc.php プロジェクト: laiello/quickbug
/**
 * 判断文件是否为图片
 *
 * @param unknown_type $file
 */
function isImage($file)
{
    // 得到扩展名
    $ext = strtolower(QP_Func_Func::fileExt($file));
    return in_array($ext, array('.jpg', '.jpeg', '.gif', '.png', '.bmp'));
}
コード例 #3
0
ファイル: Image.php プロジェクト: laiello/quickbug
 /**
  * 生成图片验证码
  *
  * @param int $length :验证码长度
  * @param int $mode :模型 0:数字 1:小写字母 2:大写字母 3:字母与数字组合
  * @param string $type :指定图片类型,一般用默认值.
  * @param int $width :图片宽
  * @param int $height :图片高
  */
 public static function imgVerify($length = 4, $mode = 3, $type = 'png', $width = 48, $height = 22)
 {
     // 生成随机数保存在 SESSION 中
     $randval = QP_Func_Func::randString($length, $mode);
     QP_Session_Session::set('QP_Verify_Code', md5(strtolower($randval)));
     $width = $length * 9 + 10 > $width ? $length * 9 + 10 : $width;
     if ($type != 'gif' && function_exists('imagecreatetruecolor')) {
         $im = @imagecreatetruecolor($width, $height);
     } else {
         $im = @imagecreate($width, $height);
     }
     $r = array(225, 255, 255, 223);
     $g = array(225, 236, 237, 255);
     $b = array(225, 236, 166, 125);
     $key = mt_rand(0, 3);
     //$backColor = imagecolorallocate($im, $r[$key],$g[$key],$b[$key]);    //背景色(随机)
     $backColor = imagecolorallocate($im, 255, 255, 255);
     //背景白色
     $borderColor = imagecolorallocate($im, 100, 100, 100);
     //边框色
     //$pointColor = imagecolorallocate($im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));                 //点颜色
     $pointColor = imagecolorallocate($im, 255, 255, 255);
     @imagefilledrectangle($im, 0, 0, $width - 1, $height - 1, $backColor);
     @imagerectangle($im, 0, 0, $width - 1, $height - 1, $borderColor);
     $stringColor = imagecolorallocate($im, mt_rand(0, 200), mt_rand(0, 120), mt_rand(0, 120));
     // 干扰
     for ($i = 0; $i < 10; $i++) {
         //$fontcolor=imagecolorallocate($im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
         //imagearc($im,mt_rand(-10,$width),mt_rand(-10,$height),mt_rand(30,300),mt_rand(20,200),55,44,$fontcolor);
     }
     for ($i = 0; $i < 25; $i++) {
         $fontcolor = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
         imagesetpixel($im, mt_rand(0, $width), mt_rand(0, $height), $pointColor);
     }
     @imagestring($im, 5, 5, 3, $randval, $stringColor);
     header("Content-type: image/" . $type);
     $ImageFun = 'Image' . $type;
     $ImageFun($im);
     imagedestroy($im);
 }