通过ajax请求到webman没有实现浏览器自动下载
请求之后,控制台显示
不知道啥原因,如果webman的这种方式不能实现,是否有其他的方式,目前我可以返回路径给前端,然后通过前端进行下载;除此之外是否还有其他方式
public function imgToIco()
{
$url = request()->input('url');
$size = request()->input('size',32);
$url = '/temporary/20231017/1697524708.jpeg';
$path = public_path().$url;
// 清除输出缓冲区建一个新Imagick对象
$imagick = new Imagick();
// 读取图像
$imagick->readImage($path);
// 缩放图像到32x32像素
$imagick->thumbnailImage($size, $size, true);
// 设置ICO文件的格式
$imagick->setImageFormat('ico');
// 保存ICO文件
$savePath = public_path().'/temporary/output.ico';
$imagick->writeImages($savePath, true);
//unlink($path);
return response()->download($savePath, 'favicon.ico');
}
前端下载代码
$('#convertBtn').on('click', function() {
// 获取选择的图片尺寸
var imageSize = $("input[name='imageSize']:checked").val();
var url = $('#previewImage').attr('src');
$.ajax({
type: 'get', // 请求类型(可根据需要更改)
url: '/blog/index/imgToIco', // Ajax请求的目标URL
data: {
'size':imageSize,
'url':url,
'next':'next'
},
success: function (response) {
},
error: function (xhr, status, error) {
}
});
});
ajax不支持下载文件到本地,这和webman无关
多谢回答。
用 iframe 打开下载地址就行
嗯,我直接window.loaction.href就可以了,写了一个在线图片转ico的小工具