哥们,你这个可以动态输出内容吗?我的windows上面不能运行,很烦人。
public function htmlToImage()
{
//模拟传过来的参数
$url = request('url', 'http://192.168.0.136:92/htmlToImageView');
$type = request('type', 1);
request()->offsetSet('api_token', 'bxs8T3pfy3IfcjftJWBfcNFsvB2Vh0W9Xgr7fww3jYUTuaIn5xFR0fYYr9iJ');
request()->offsetSet('user_info_id', 1);
request()->offsetSet('openid', 0);
// dd(request()->all());
$client = Client::getInstance();
$client->isLazy();
$client->getEngine()->debug(true); //允许或禁止调试
// 判断系统类型来决定执行文件的名称
$excute = PHP_OS == 'WINNT' ? 'phantomjs.exe' : 'phantomjs';
$client->getEngine()->setPath(base_path() . '/bin/' . $excute);
//截取全屏
$width = 0;
$height = 0;
$top = 0;
$left = 0;
//唯一文件名
$name = uniqid();
//存储位置
$storage_path = storage_path('app/public/capture/' . $name . '.jpg');
if ($type == 1) {
$request = $client->getMessageFactory()->createCaptureRequest($url, 'GET');
} else {
$request = $client->getMessageFactory()->createCaptureRequest($url, 'POST');
$request->addHeader('X-CSRF-TOKEN', csrf_token());
}
//带上cookie和csrftoken,传输的数据
$request->setRequestData(
array(
'api_token' => request('api_token'),
'user_info_id' => request('user_info_id'),
'openid' => request('openid'),
));
$request->addHeader('cookie', request()->header('cookie'));
$request->setTimeout(10000); //超过指定时间则中断渲染
$request->setOutputFile($storage_path);
$request->setViewportSize($width, $height);
$request->setCaptureDimensions($width, $height, $top, $left);
$response = $client->getMessageFactory()->createResponse();
$client->send($request, $response);
$log = $client->getLog(); #输出调试日志
dd($log, $response->getContent()); #输出内容
return $this->outPutJson($storage_path);
}
public function htmlToImageView()
{
$request = request()->all();
return view('test.htmlToImageView', compact('request'));
}
视图文件内容:
Document{{Request::url()}}
{!! QrCode::size(100)->generate(Request::url()); !!}
@php
dd($request);
@endphp