1

imap を Google メールボックスに入れ、メッセージを取得し、本文からリンクを抽出するスクリプトを作成しています。このリンクを PHP 経由で開くと、外部ソースから PDF ファイルのダウンロード プロセスが開始されます。

これが私がする必要があることです:

  1. ダウンロードを開始するリンクをプログラムで開く
  2. 明らかにダイアログボックスをバイパスしてPDFをダウンロードします
  3. PDF ファイルを Web サーバー上のローカル フォルダーに保存します。

ダウンロード プロセスを開始してファイルをダウンロードできるところまでは成功しています。ただし、PDF を開こうとすると、ファイルが破損していることがわかり、その理由がわかりません。これが私が今試していることです。以下は同様のトピックに基づいています。

    $filename =  http://cckk.ca/KE645R26/geico.com_SEO_Domain_Dashboard_20121101_00.pdf

    header('Content-Description: File Transfer');
    header('Content-Type: application/pdf');
    header('Content-Disposition: attachment; filename="' . basename($filename) . '"');
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($filename));
    ob_clean();
    flush();
    readfile($filename);
    exit;

私が渡しているファイル名に問題があるのではないかと考えていますか?

注:このスクリプトは、サーバー上で数秒ごとに実行される CRON タスクとしてセットアップされます。これは、私たち自身のメールボックスから常に取得するためです。ユーザー。

4

2 に答える 2

5

試す:

$filename = 'http://cckk.ca/KE645R26/geico.com_SEO_Domain_Dashboard_20121101_00.pdf';

file_put_contents(
    '/your/server/path/folder/' . basename($filename), // where to save file
    file_get_contents($filename)
);

exit;
于 2013-01-11T16:37:07.397 に答える
2

リモート ファイルに対して filesize() を使用することはできません。ほとんどの場合、その呼び出しからのエラーがファイルの先頭に表示され、ファイルが破損しています。

于 2013-01-11T16:40:10.750 に答える