it-swarm.com.de

Speichern der Datei in einem vorgegebenen Verzeichnis mithilfe von FPDF

Ich möchte die Datei PDF in einem vom Benutzer angegebenen Verzeichnis speichern. Ich benutze 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');
?>

Nun, selbst wenn ich "G:\PDF\" in den Dateinamen stelle, 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 geprüft, ob das Verzeichnis, das ich zu schreiben versuche, über Schreib-/Leseberechtigungen verfügt und es dort ist. ES FUNKTIONIERT NOCH NICHT!

BITTE helfen Sie jemandem ... 

14
Sharmin

Sie verwenden die Option F falsch, F soll das PDF lokal auf dem Server speichern, nicht in einem bestimmten Verzeichnis auf dem Benutzercomputer. Also würdest du so etwas verwenden:

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

Dies wird im Verzeichnis public_html Ihres Webservers gespeichert

32
user2559331

Ich habe mit mir selbst zu kämpfen gehabt, es gibt drei Dinge, die man beachten muss, von denen zwei in anderen Beiträgen zu diesem Thema erwähnt werden:

  1. Befehl: Ausgabe ('F', "xyz_file");
  2. Berechtigungen für das Zielverzeichnis des Servers müssen Schreibvorgänge für nicht eskalierte Berechtigungen zulassen (d. H. Drwxrwxrwx).
  3. Definition des Inhaltstyps: Header ("Inhaltstyp: application/pdf");
1
9finger

Es liegt daran, dass Sie versuchen, die Datei an einem Ort zu speichern, an dem Sie nicht möchten. Wahrscheinlich, weil Sie die Berechtigungen des Verzeichnisses nicht auf 777 gesetzt haben. 

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

Ihr Apache-Benutzer muss also in das Verzeichnis schreiben können, in das Sie schreiben möchten.

Normalerweise müssen Sie den anderen Benutzern Ihres Systems möglicherweise das Schreibrecht erteilen, indem Sie Folgendes über eine Befehlszeile verwenden:

chmod o + w Ihr_Verzeichnis

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

1

Haben Sie das Hochladen von Dateien versucht? Ich denke, Sie und ich könnten versuchen, dasselbe zu tun, und das scheint zu funktionieren. Ich arbeite auch an einem gemeinsam genutzten Laufwerk.

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

0
J Noel

Mögliche Berechtigungen Ihres Apache-Dienstes:

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

0
Paul Norman

Überprüfen Sie die Syntax hier: http://www.fpdf.org/de/doc/output.htm Es ist: string Output([string dest [, string name [, boolean isUTF8]]]), , So dass Sie schreiben müssen:

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

oder z.B.

$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 Pfad von Windows verwenden können ...

0
David Najman

Ich habe es so gelöst:

public functon GeneratePdf(){
    ...
    PDF::Output("C:/xampp/htdocs/MyProject/doc.pdf","F"); 
}

Ich habe den gesamten Verzeichnispfad in die Ausgabemethode kopiert und keine weiteren Berechtigungen dafür festgelegt.

Ich hoffe es hilft dir !!