Я хочу сохранить файл PDF в каталог, указанный пользователем. Я использую FPDF. И код выглядит следующим образом:
<?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'); ?>
Теперь, даже если я поместил "G:\PDF\"
в имя файла, он не сохранит его! Я пробовал следующее:
$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');
в$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');
в$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');
в$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');
Я проверил, что каталог, который я пытаюсь написать, имеет разрешение на чтение / чтение, и он есть. ЭТО ВСЕ ЕЩЕ НЕ РАБОТАЕТ!
ПОЖАЛУЙСТА, помогите кому-нибудь …
Вы используете параметр F неправильно, F предназначен для сохранения PDF локально на сервере, а не в определенном каталоге на компьютере пользователя. Поэтому вы бы использовали что-то вроде:
$filename="/home/user/public_html/test.pdf"; $pdf->Output($filename,'F');
Это будет сохранено в каталоге public_html вашего веб-сервера
Это потому, что вы пытаетесь сохранить файл где-то, в котором он вас не хочет. Скорее всего, потому, что ваш havent установил права доступа к каталогу на 777.
Если ваш PHP-скрипт выполняется с веб-страницы (обслуживается Apache, это так), то этот код будет выполняться пользователем Apache (иногда называемым www-data).
Таким образом, ваш пользователь Apache должен иметь возможность писать в каталог, который вы пытаетесь записать.
Как правило, вам может потребоваться предоставить права на запись другим пользователям вашей системы, используя что-то вроде этого из командной строки:
chmod o + w your_directory
Программное обеспечение, которое вы используете для загрузки исходных файлов, если это сделать с помощью графического интерфейса, должно позволить вам сделать это с помощью нескольких chekboxes – вам нужно установить флажок «писать» для «других» пользователей.
Вероятные разрешения вашего сервиса Apache:
Вы пытались загрузить файл? Я думаю, что вы и я, возможно, пытаемся сделать то же самое, и это, похоже, работает. Я также работаю с общим диском.
http://php.net/manual/en/features.file-upload.post-method.php
Борясь с этим самим, есть три вещи, которые нужно застраховать, два из которых упоминаются в других сообщениях по этой теме: