Datei mit FPDF in ein vorgegebenes Verzeichnis speichern

Lesezeit: 4 Minuten

Benutzer-Avatar
Sharmin

Ich möchte die PDF-Datei in einem vom Benutzer angegebenen Verzeichnis speichern. Ich verwende FPDF. Und der Code ist wie folgt:

<?php
//echo "<meta http-equiv=\"refresh\" content=\"0;url=http://www.train2invest.net/useradmin/atest_Khan.php\">";
require('fpdf.php');

//create a FPDF object
$pdf=new FPDF();

//set font for the entire document
$pdf->SetFont('times','',12);
$pdf->SetTextColor(50,60,100);

//set up a page
$pdf->AddPage('P');
$pdf->SetDisplayMode(real,'default');

//Set x and y position for the main text, reduce font size and write content
$pdf->SetXY (10,60);
$pdf->SetFontSize(12);
$pdf->Write(5,'Dear Ms.XYX');

 $filename="test.pdf";
//Output the document
$dir = "/G:/PDF/test.pdf/"; // full path like C:/xampp/htdocs/file/file/
$pdf->Output($dir.$filename,'F');
?>

Jetzt auch wenn ich lege "G:\PDF\" im Dateinamen wird es nicht gespeichert !! Ich habe folgendes versucht:

$filename="G:\PDF\test.pdf";
$pdf->Output($filename.'.pdf','F');


$filename="G:\\PDF\\test.pdf";
$pdf->Output($filename.'.pdf','F');

$filename="G:/PDF/test.pdf";
$pdf->Output($filename.'.pdf','F');


$filename="/G:/PDF/test.pdf/";
$pdf->Output($filename.'.pdf','F');

Ich habe überprüft, ob das Verzeichnis, in das ich schreiben möchte, Schreib-/Leseberechtigungen hat und es ist da. ES FUNKTIONIERT NOCH NICHT!

BITTE helft jemandem…

  • Formatierung verwenden code block Es ist schwierig, Ihre Frage zu lesen und php Tag, um die Aufmerksamkeit der richtigen Leute zu erregen

    – Isch

    2. Dezember 2010 um 21:02 Uhr


  • Haben Sie versucht, es an den Browser auszugeben, um zu sehen, ob die Output() Routine funktioniert überhaupt? Schalten Sie das ‘F’ in ein ‘D’ um, um es zu versuchen.

    – Kugeln

    2. Dezember 2010 um 21:40 Uhr

  • Ich habe das versucht, aber ich möchte, dass das PDF in einem lokalen Ordner gespeichert wird, ich möchte nicht, dass der Benutzer es in einem Ordner seiner Wahl speichert, ich möchte, dass das PDF in einem Ordner gespeichert wird, den ich innerhalb von angeben würde Code … aber es passiert nicht.

    – Scharmin

    7. Dezember 2010 um 13:54 Uhr

Benutzer-Avatar
Benutzer2559331

Sie verwenden die F-Option falsch, F wurde entwickelt, um die PDF-Datei lokal auf dem Server zu speichern, nicht in einem bestimmten Verzeichnis auf dem Computer des Benutzers. Sie würden also so etwas verwenden wie:

$filename="/home/user/public_html/test.pdf";
$pdf->Output($filename,'F');

Dies wird im Verzeichnis public_html Ihres Webservers gespeichert

Überprüfen Sie die Syntax hier: http://www.fpdf.org/en/doc/output.htm
Es ist: string Output([string dest [, string name [, boolean isUTF8]]])also muss man schreiben:

$pdf->Output('F', $filename, true); // save into the folder of the script

oder zB:

$pdf->Output('F', '/var/www/html/wp-content/' . $filename, true); // save into some other location

oder relativer Pfad:

$pdf->Output('F', '../../' . $filename, true); // to parent/parent folder

Ich bin mir jedoch nicht sicher, ob Sie den absoluten Windows-Pfad verwenden können …

Benutzer-Avatar
9finger

Nachdem ich selbst damit gekämpft habe, gibt es drei Dinge, die man sicherstellen muss, von denen zwei in anderen Beiträgen zu diesem Thema erwähnt werden:

  1. Befehl: output(‘F’, “xyz_file”);
  2. Berechtigungen für das Zielverzeichnis des Servers müssen Schreibvorgänge für nicht eskalierte Berechtigungen (dh drwxrwxrwx) zulassen.
  3. Definition des Inhaltstyps: header(“Content-type:application/pdf”);

Es liegt daran, dass Sie versuchen, die Datei an einem unerwünschten Ort zu speichern. Höchstwahrscheinlich, weil Sie die Berechtigungen des Verzeichnisses nicht auf 777 gesetzt haben.

Wenn Ihr PHP-Skript von einer Webseite ausgeführt wird (die von Apache bereitgestellt wird), wird dieser Code vom Apache-Benutzer (manchmal auch www-data genannt) ausgeführt.

Ihr Apache-Benutzer muss also in der Lage sein, in das Verzeichnis zu schreiben, in das Sie schreiben möchten.

In der Regel müssen Sie den anderen Benutzern Ihres Systems möglicherweise das Schreibrecht erteilen, indem Sie etwa Folgendes von einer Befehlszeile aus verwenden:

chmod o+w your_directory

Die Software, die Sie zum Hochladen Ihrer Quelldateien verwenden, sollte dies mit ein paar Kontrollkästchen ermöglichen, wenn Sie dies mit einer GUI tun. Sie müssen das Kontrollkästchen “Schreiben” für die “anderen” Benutzer aktivieren.

Benutzer-Avatar
Harrison O

Hier ist eine einfache Lösung, die Ihnen hilft, die Datei im angegebenen Verzeichnis zu speichern und die URL der Datei zu haben, die Sie in der Datenbank speichern können.

$invoice = new phpinvoice();
...
...

$path = $_SERVER["DOCUMENT_ROOT"].'/uploads/';
$url = $_SERVER['HTTP_HOST'].'/uploads/';

$invoice->render($path.'.pdf','F');
return $url.'.pdf'; // print_r($url.'.pdf')

Ich hoffe das hilft.

Benutzer-Avatar
Paul Norman

Wahrscheinliche Berechtigungen Ihres Apache-Dienstes:

http://www.php.net/manual/en/function.opendir.php#87479

Benutzer-Avatar
J Noel

Datei-Upload schon versucht? Ich denke, Sie und ich versuchen vielleicht, dasselbe zu tun, und das scheint zu funktionieren. Ich arbeite auch an einem gemeinsamen Laufwerk.

http://php.net/manual/en/features.file-upload.post-method.php

1040130cookie-checkDatei mit FPDF in ein vorgegebenes Verzeichnis speichern

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy