Dropboxなどにドキュメントを送信できるAPIを使用しています。ドキュメントによると、送信されるファイルはBASE64でエンコードされたデータである必要があります。
それで、私はこのようなものを試しています
$b64Doc = chunk_split(base64_encode($this->pdfdoc));
どこ $this->pdfdoc
はmy PDFドキュメントへのパスです。
現在、ファイルは送信されていますが、無効のようです(何も表示されていません)。
PDFをBASE64エンコードされたデータに正しく変換していますか?
ありがとう
base64_encode
は文字列入力を受け取ります。つまり、パスをエンコードするだけです。ファイルの内容を取得する必要があります
$b64Doc = chunk_split(base64_encode(file_get_contents($this->pdfdoc)));
base64_encode()
は、渡した文字列をエンコードします。渡す値がファイル名の場合、取得するのはファイルの内容ではなく、エンコードされたファイル名だけです。
おそらく最初にfile_get_contents($this->pdfdoc)
か何かをしたいと思うでしょう。
base64をpdfに変換し、サーバーパスに保存します。
// Real date format (xxx-xx-xx)
$toDay = date("Y-m-d");
// we give the file a random name
$name = "archive_".$toDay."_XXXXX_.pdf";
// a route is created, (it must already be created in its repository(pdf)).
$rute = "pdf/".$name;
// decode base64
$pdf_b64 = base64_decode($base_64);
// you record the file in existing folder
if(file_put_contents($rute, $pdf_b64)){
//just to force download by the browser
header("Content-type: application/pdf");
//print base64 decoded
echo $pdf_b64;
}