ホーム>source

いつものように、ここは私がたくさん学んだ場所です。そして今、学ぶべき新しいことがある:

私はhtmlフォームを持っています:

<前>ウィズウィズ

そして、mail.php:

<前>ウィズウィズ

メールを送信するための正しいswiftmailerコード。

私はググってみましたが、ウェブサイトに保存されているファイルを添付して送信する例をたくさん見つけましたが、その場でそれをやりたいです。したがって、ボタンを送信すると、ファイルをアップロードするのではなく、人々に送信されます。

<前>ウィズウィズ

誰かがオンザフライでファイルをアップロードする方法を教えてくれませんか?前もって感謝します!!!

<tr><td width="16%">File attachment</td><td width="2%">:</td><td><input type="file" name="fileatt" /></td></tr>
あなたの答え
  • 解決した方法 # 1

    これを行う簡単な方法があります。

    <前>ウィズウィズ

    これは、SwiftMailがこれを実行できる1つの方法です。今では/ tmpファイルだけであり、上記を次のように変換します。

    仮定:fileattは$_FILEの変数であり、['tmp_name']は実際にはPHPがフォームのアップロードから作成するtmpファイルです。

    <前>ウィズウィズ

    SwiftMailの添付ファイルの詳細については、このドキュメントページをご覧ください。

    $_FILESの詳細については、ここw3schoolsを参照してください。w3schoolsは好きではありませんが、このページはしっかりしています。

  • 解決した方法 # 2

    これを行う別の方法は、パスとファイル名に単一の変数のみを使用することです。

    <前>ウィズウィズ

  • 解決した方法 # 3

    $message->attach( Swift_Attachment::fromPath('/path/to/image.jpg')->setFilename('myfilename.jpg') );

    私の答えは、AndréCatitaに似ています。ただし、Laravel 6では次のように使用できます$request の代わりに$_FILES。上記のコードを簡略化しましょう:

    <前>ウィズウィズ

    ここでは、ファイルタグの名前がインポートであると想定しています。例: $message->attach( Swift_Attachment::fromPath($_FILES['fileatt']['tmp_name'])->setFilename($_FILES['fileatt']['name']) );

    ウィズウィズ

    ここで、単一の添付ファイルの代わりに、複数の添付ファイルが必要だとしましょう。次に、コードを変更する必要があります。

    最初にあなたのhtmlコードは次のようになります: $message->attach(Swift_Attachment::fromPath('full-path-with-attachment-name'));

    そして、バックエンドまたはララベルの場合。コードは次のようになります:

    <前>ウィズウィズ

    Single Attachment

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ javascript - TypeScriptエラーパラメータ 'props'には暗黙的に 'any'タイプがあります