皆さん、今はいくつかの問題で動いています。サーバーの内部状況については、私がコントロールできないものがあります。コンテンツにはブラウザの制限があり、base64のエンコードされたファイルに直接影響するため、これらの文字列の長さのために、既存のbase64 pdfファイルをクライアントに提供するPHPスクリプトを作成しました。ダウンロード可能なファイル、およびそれだけでこのように働いた:私はPDFファイルを使用しますが、私は動作するように見えるいくつかの「XLSX」ファイルにそれを使用しようとすると、それはファイルをダウンロードするときConvertigがbase64をダウンロード可能なファイルに変換するPHP
$reg = File::find($args->string('id')); //querying the file from database
$filename = $reg->filename; //the original file name
$base64 = $reg->file; //the base64 encoded file
$meta_type = explode(',', $base64) [0]; //getting the meta type of the file
$meta_type = str_replace('data:', '', $meta_type);
$meta_type = str_replace(';base64', '', $meta_type);
$file = explode(',', $base64) [1];
$file = base64_decode($base64); //decoding the base64 string
header('Content-Description: File Transfer');
header('Content-Type: ' . $meta_type);
header('Content-Disposition: attachment; filename="' . $filename . '"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . (strlen($file)));
echo $file;
これは、うまく働いていましたファイルサイズとすべてが元のファイルと一致するようですが、ファイルを開くことはできませんが、誰かが私がここで行方不明のアイデアを持っていますか? :)
私はちょうどラインをコピーしていない「エコー$ファイル」の後に「)の出口(」持っている:Pを、私はまた、コンテンツの長さとコンテンツ記述のヘッダーにコメントをしようとしましたが、私はそれらを必要としませんし、エコーの前にob_end_clean()を使ってalfoを実行しましたが、ファイルはまだ破損しています – Strife86
私はあなたに正しい回答フラグを与えますクリーンなバッファの潜在的な問題について知りませんでした。私はそれがとても有用だと信じていましたが、コードはそれだけで、 '$ file = base64_decode($ base64);というばかげたミスでした。それは '$ file = base64_decode($ file);' – Strife86