2009-06-12 6 views
-1

私はpdfを生成することができるファイルを持っていますが、自動的に保存するユーザーのデスクトップになるようにします。ファイルをユーザーのデスクトップに保存します

$pdf->Output("sample.pdf"); 

パスにする必要があります。

+3

phpは通常サーバー上で動作しますが、ユーザーのデスクトップについての知識はなく、誰も持っていない可能性があります – SilentGhost

答えて

3

あなたはサーバーサイドを持っていても、ユーザーのシステムにブラウザから自動的にファイルを保存することはできません。ユーザーは常にファイルの保存を確認する必要があります。

同様の理由から、ブラウザを介してユーザーのシステムのディレクトリ構造を照会することはできません。また、ブラウザに何かを保存するための推奨ディレクトリを与えることができないと思うかもしれません。

1

PHPで行うことはできません。 PHPはユーザのデスクトップではなくサーバ上で動作します。おそらく、ファイルをサーバーのどこかに保存して、生成されたファイルをダウンロードするためのリンクをユーザーに表示したいとします。

コースの場合を除き、あなたは、あなたの質問に明確にしてください。その場合には、すなわちApacheや他のいくつかのウェブサーバは、ユーザーのコンピュータにインストールされている(ユーザーのコンピュータ上でローカルにPHPを実行している話をしている。

1

PHPスクリプトを仮定すると、コマンドラインインターフェイスまたはPHP-GTKを使用してクライアントサイドアプリケーションとして実行している場合は、実際に実行されているシステムがWin32タイプのマシンであるかどうかをまず確認する必要があります。

次に、Windows Only Extensionsを使用してユーザーのデスクトップフォルダなど、よく知られている場所、つまりSHGetFolderPath()を返すネイティブWin32 API関数呼び出し、CSIDL_DESKTOPを秒として返しますパラメータ。

あなたのスクリプトはサーバー上で実行される場合、実際に指示されていないユーザーのデスクトップに直接ファイルを置く方法はありません。

0

ブラウザにPDFを出力して、ファイルをPDFとして認識させるための適切なヘッダーを提供する必要があります(または、単にダウンロードを強制的にダウンロードできるようにする)。また、ファイルを破損する可能性があるため、PDF以外のものを出力しないようにしてください。

編集:ウェブブラウザを使用する場合、セキュリティ上の理由から、自動ダウンロードを強制することはできません。ダウンロードを促し、有効にすることはできません。

PHPスクリプト(Linuxワークステーションなど)について話している場合は、おそらく完全に異なるものを実行したいと考えています。 PDFライブラリでパスを指定できない場合は、Webブラウザで行うのと同じ方法でヘッダーを削除し、出力バッファを使用して出力をキャッチしてファイルに書き出します。スクリプトを直接実行すると、あなたのホームディレクトリに書き込むために必要な特権を持っています。