【解決方法】File_get_contents(FASHION show.pdf): ストリームを開けませんでした: そのようなファイルまたはディレクトリはありません


こんにちはチーム

サーバーからのログを使用してこの問題を抱えています。 メールをpdfとして送信し、関数を使用してphpmailerを使用しています。 しかし、現在、ログには、application.php の 94 行目に問題があることが示されています。 この問題を解決するにはどうすればよいですか?

私が試したこと:

$content = file_get_contents($filenameee);
  $content = chunk_split(base64_encode($content));
   // main header (multipart mandatory)
$headers = "From: ".$from." <".$from.">" . $eol;
$headers .= "MIME-Version: 1.0" . $eol;
$headers .= "Content-Type: multipart/mixed; boundary=\"" . $separator . "\"" . $eol;
$headers .= "Content-Transfer-Encoding: 7bit" . $eol;
$headers .= "This is a MIME encoded message." . $eol;
   $headers .= "MIME-Version: 1.0\r\n";
   $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

   $subject = "Application Form";

// a random hash will be necessary to send mixed content
$separator = md5(time());

// carriage return type (RFC)
$eol = "\r\n";

// phpmailer を使用して添付ファイルのメールを送信する関数

    echo "Starts here..";
    
function send_pdf_to_user(){
   
    if($_REQUEST['action'] == 'pdf_invoice' ){
        
        require('application.php');
        
        require_once('class.phpmailer.php');
    
        $pdf=new PDF_HTML();
        
        $pdf->SetFont('Arial','',11);
        
        $pdf->AddPage();
        

        $text = get_html_message($_REQUEST['Amount'], $_REQUEST['Purpose'], $_REQUEST['Voucher']);
        if(ini_get('magic_quotes_gpc')=='1')
        $text=stripslashes($text);
        $pdf->WriteHTML($text);

        $mail = new PHPMailer(); // defaults to using php "mail()"
        $body = "";
       
        $mail->AddReplyTo("info@agilelimitless.org.za","Test Lernt");
        $mail->SetFrom('ggcobani@gmail.com', 'Test Lernt');
       
        $address = "ongeziwe.gogotye@agilelimitless.org.za";
		
		$mail->AddAddress($address, "ACI Finance");       
        $mail->Subject    = "Application for a Loan";       
        $mail->AltBody    = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
       
        $mail->MsgHTML($body);
        //documentation for Output method here: http://www.fpdf.org/en/doc/output.htm       
        $pdf->Output("Application Loan.pdf","F");
        $path = "application.pdf";
         
        $mail->AddAttachment($path, '', $encoding = 'base64', $type = 'application/pdf');
        global $message;
        if(!$mail->Send()) {
          $message =  "Application for a loan could not be send. Mailer Error: " . $mail->ErrorInfo;
        } else {
          $message = "Application for a loan is sent!";
        }
        
       
    }
}

    echo "after function";
   $to = "Ongeziwe.Gogotya@agilelimitless.org.za";
   $from = $_REQUEST['email'];
   $filenameee = $_FILES['id']['name'];
    $fileName = $_FILES['id']['tmp_name'];

解決策 1

エラー メッセージは非常に明確です。ファイル (またはファイルへのパスの一部) が存在しないか、アクセスできません。

推測では、ファイルはコンピューターに対してローカルであり、ローカル ファイル システムにアクセスできないサーバー上でコードが実行されています。
そのため、パスを確認してください。ファイルが実際に存在するコンピューターと、コードを実行しているコンピューターを特定します。

一見すると、これは Web アプリです。クライアント パスは、常にサーバー上で実行されるため、PHP コードに直接アクセスすることはできません。 ファイルにアクセスするには、セキュリティ上の理由から、ユーザーはまずサーバーへのファイルのアップロードを開始する必要があります。

コメント

タイトルとURLをコピーしました