php输出图片没有,ThinkPHP里无法输出图片 设置响应头
今天写了一个PHP生成图片,想用浏览器查看,但是每次打开都是一串乱码,看样子是图片源二进制数据,然后查看了下响应头是text/html,那我明明设置了image/jpeg
header("Content-type", "image/jpeg");
复制代码
这说明TP默认设置了text/html,查了官方文档,啥也没说,去网上查,才知道TP有个Response类,默认所有控制器输出text/html,官方文档啥也没说,只好自己去翻Response这个类了
ThinkPHP6\vendor\topthink\framework\src\think\Response.php
复制代码
基类Response被这几个类继承,我试了下File类,但是这个File是输出文件,浏览器直接下载了
$file = new File('123.jpg');
$response = $file->mimeType('image/jpeg');
throw new HttpResponseException($response);
复制代码
在看看基类Response
/**
* 创建Response对象
* @access public
* @param mixed $data 输出数据
* @param string $type 输出类型
* @param int $code 状态码
* @return Response
*/
public static function create($data = '', string $type = 'html', int $code = 200): Response{
$class = false !== strpos($type, '\\') ? $type : '\\think\\response\\' . ucfirst(strtolower($type));
return Container::getInstance()->invokeClass($class, [$data, $code]);
}
复制代码
这里是自动找response目录下的响应类,但我只想设置一个响应头来显示我的图片,文档翻遍了没找到方法,然后看了看目录下的Html类,那我们可以自己写一个自定义类来输出自己想要的响应格式
/**
* Html Response
*/
class Html extends Response{
/**
* 输出type
* @var string
*/
protected $contentType = 'text/html';
public function __construct(Cookie $cookie, $data = '', int $code = 200){
$this->init($data, $code);
$this->cookie = $cookie;
}
}
复制代码
于是我在response目录写了一个Jpeg类
/**
* Html Response
*/
class Jpeg extends Response{
/**
* 输出type
* @var string
*/
protected $contentType = 'image/jpeg';
public function __construct(Cookie $cookie, $data = '', int $code = 200){
$this->init($data, $code);
$this->cookie = $cookie;
}
}
复制代码
可以输出图片了
$response = Response::create('', 'Jpeg');
$image->blob('JPEG');
throw new HttpResponseException($response);
复制代码
也许有办法不用这么麻烦,但是TP官方文档啥也没有写,一下子也找不到其他方法,导致我的header()函数都没用了,这里引用ThinkPHP论坛网友的一句话
框架的定义就是在于更快速、便捷地开发应用
如果我使用了某款框架还是需要自己去注意条条款款,然后定义或修正许多形式上的规范,那还用框架干嘛呢
本末倒置,鸡蛋里面挑骨头
php输出图片没有,ThinkPHP里无法输出图片 设置响应头相关推荐
- php 无法输出图像,ThinkPHP里无法输出图片 设置响应头
今天写了一个PHP生成图片,想用浏览器查看,但是每次打开都是一串乱码,看样子是图片源二进制数据,然后查看了下响应头是text/html,那我明明设置了image/jpegheader("Co ...
- css图片在盒子里居中,让图片在div盒子中水平垂直居中
//调整多张图片,让图片水平垂直居中 function adjustImg(){ let imgDiv = document.getElementsByClassName("img" ...
- ashx返回图片_ashx输出文字,执行JavaScript,输出图片等
原文发布时间为:2009-09-30 -- 来源于本人的百度文章 [由搬家工具导入] 一提到Ashx文件,我们就会想到http handler以及图片加载(在之前我们一般使用ASPX或者Webserv ...
- python常见面试题:m1={‘a‘:1,‘b‘:2,‘c‘:1} 将同样的value的key集合在list里,输出{1:[‘a‘,‘c‘],2:[‘b‘]}
字典遍历 我们要对字典里面的内容遍历判断的话,一般会用到items的方法,把字典转化成list of tuple 面试题: m1={'a':1,'b':2,'c':1} # 将同样的value的key ...
- ThinkPHP 3 的输出
一.ThinkPHP 3 的输出 (重点)a.通过 echo 等PHP原生的输出方式在页面中输出b.通过display方法输出想分配变量可以使用assign方法c.修改左右定界符休要修改配置文件中的配 ...
- ,CFormView::Create()里,_AfxCheckDialogTemplate输出Cannot find dialog template with IDD 0x00AB
调用多语言资源DLL之后,CFormView::Create()里,_AfxCheckDialogTemplate输出Cannot find dialog template with IDD 0x00 ...
- Pycharm的相关配置:改字体样式和大小、更改图片背景、更改控制台输出的字体颜色
文章目录 Pycharm的相关配置:改字体样式和大小.更改图片背景.更改控制台输出的字体颜色 一.pycharm更改字体样式和大小 二.pycharm更改图片背景 三.pycharm更改控制台输出的字 ...
- php图片输出代码怎么写,将数据以图片的形式输出的PHP代码
<?php echo " "; echo ""; ?> logo.jpg文件和应该是这样写 去见你想见的人吧.趁阳光正好,趁微风不噪,趁繁花还未开至 ...
- 图片上传、后端输出下载图片(微信小程序无师自通四)
微信小程序图片上传并显示 前端上传: 小汽车保养里程碑微信小程序中,需要上传汽车零件的照片,车辆的照片.小程序使用wx.chooseMedia() 和wx.uploadFile() 函数上传小程序前端 ...
最新文章
- Python 3 尴尬了这么久,终于有救了
- C 判断 —— if...else 语句(bool变量、float变量、指针变量与“零值”进行比较)(else 到底与哪个 if 配对呢? if 语句后面的分号?)
- Android之图片缓存管理
- P5322-[BJOI2019]排兵布阵【背包】
- Java 代码复用 —— 泛型
- python牛顿法寻找极值_python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例...
- python椭圆曲线加密_如何理解椭圆曲线加密并对其进行编码
- PowerShell加密SQL Server的密码技术
- 【资产管理】2020年海外头部资管机构经营特点及启示
- 【毕业设计】大数据 电影数据分析与可视化系统 - python Django 大数据 可视化
- c语言恶搞小程序自动关机,C语言的自动关机程序及捉弄人的小程序.doc
- 配置Tomcat性能优化
- 腾讯地图个性化图层创建及发布
- Android 开发 -- 开发第一个安卓程序、Android UI开发(布局的创建:相对布局和线性布局、控件单位:px pt dp sp、常用控件 、常见对话框、ListView)
- 数据结构之图最短路径
- MATLAB导入数据importdata功能
- mac下idea选中多个相同内容的快捷键
- Mac系统快速切换不同JDK
- 洛谷P1346 电车
- 为什么腾讯会议导致手机电脑发烫
热门文章
- mysql不支持union_Mysql中Union的子句不支持order by
- 计算机的三个基本功能,操作系统的三个作用是什么
- matlab求系统根轨迹代码_要想正确画出根轨迹,先搞清楚这8大法则再说!
- pythonsklearn多元回归回归_用sklearn进行多元线性回归
- js input点击事件_Vue.js的旅程,简单的todo实例「602」
- win10下安装SQLServer2000
- 省掉bean自定义spring mvc注解注入json值
- 从测试角度对测试驱动开发的思考【转】
- [异常记录] Error: Could not find header file for MYSQL
- 第一章 docker 镜像,容器,仓库基本命令(二)