我正在使用mpdf库将HTML转换为PDF,并将我的pdf文件成功存储在本地和远程服务器上。但是我不想将pdf文件存储在服务器上的代码存储库中,而是希望利用Google云上可用的存储桶。
/*
*/
private function generatePDF($params, $quotationId) {
$location = '/var/www/html/development/pdfs/';
$html = $this->load->view('quotation', $data, TRUE);
$filename = "quo_" .time() . ".pdf";
$mpdf = new \Mpdf\Mpdf(['mode' => 'en-IN', 'format' => 'A4']);
$mpdf->WriteHTML($html);
$mpdf->SetHTMLFooter('<p style="text-align: center; text-size: 12px;">This is computer generated quotation. It does not require signature.</p>');
$pdf = $mpdf->Output($location . $filename, 'F');
$this->UploadModel->upload($pdf, $filename);
}
public function upload($pdf, $pdfName) {
$storage = new StorageClient();
$bucket = $storage->bucket("bucketname");
$object = $bucket->upload($pdf, ['name' => $pdfName]);
$object = $bucket->object($pdfName);
$object->update(['acl' => []], ['predefinedAcl' => 'PUBLICREAD']);
}
在这里,我使用了'F'类型,它将pdf文件保存在由我在云服务器上托管的代码存储库中创建的pdfs文件夹中,但我想将其直接存储到Google云存储桶中。
我对Google Cloud和mpdf库没有太多经验,因此正在寻求帮助和指导以实现该功能。
请帮助我。
答案 0 :(得分:0)
我看到您正在使用Cloud Storage Client Libraries for PHP。
首先,您需要将其安装到计算机上
<item android:drawable="@drawable/botonverdeencendido" android:state_pressed="true"/>
<item android:drawable="@drawable/botonverdeapagado"/>
然后您需要按照指南进行set up authentication。
将这些设置为create a bucket后即可存储PDF。
然后用documentation中的代码替换您的上传功能:
composer require google/cloud-storage
答案 1 :(得分:0)
我也遇到了同样的问题,并提出了this solution,希望对您有所帮助。
使用“ S”而不是“ F”参数,因此它将返回字符串数据并将此数据直接传递到上载方法中。