2017-07-25 11 views
1

私はlaravel/lumenを使用しています。私はStorage::disk("local")->put();を私のストレージディレクトリに保存してファイルを保存することができます。しかし、今、私は電子メールにこれらのファイルのいくつかを添付して送信したい、これは仕事で行われ、私は取得エラーが ローカルストレージから電子メール添付を追加する

lumen.ERROR: exception 'Swift_IoException' with message 'Unable to open file for reading

は、今私は、私が試したが、それは単になかったシンボリックリンクについて何かを読んで結果を変更しても、自分のストレージフォルダにあるファイルをメールに添付できませんでした。

/ホーム/ XXXXXX /::

-example.app

--storage

---アプリ

は、これは私のディレクトリ構造であります

----公開

-public_html

--example.app

---このようなファイルの添付ストレージ

:あなたが渡すとき

foreach ($params["attachments"] as $attachment) { 
    $mail->attach($attachment["file"], [ 
     'as' => $attachment["name"], 
     'mime' => $attachment["mime"] 
    ]); 
} 
+0

どのようにファイルを添付していますか? – Samsquanch

+0

投稿を編集しました。 – user3718908

+0

'$ params [" attachments "]'とは何ですか?彼らはフォームから来ていますか? – Samsquanch

答えて

0

わかりましたので、明らかに迅速メーラーが失敗をファイルへの実際のパスの代わりに完全なURL。これを知らなかった、それがバグかそれとも設計によって行われたのか分からない。

0

あなたはすでにattach()メソッドがファイルへの完全なパスを期待していることを認識しました。しかし、他の人は、それを達成するための有用なノウハウを見つけるかもしれません。したがって、ローカルのストアのデフォルト設定を使用している場合は、storage_path()ヘルパーを呼び出して完全なパスを取得することができます。この方法で:

/* 
* This will return the full path to the file: 
* 
* /path/to/laravel/storage/app/attachment/path 
*/ 
storage_path('app/' . $attachment['file']); 
関連する問題