2017-02-08 36 views
0

laravelでdropzoneを使用して複数の画像をアップロードすると、正しく動作します。私が求めているのは、それらを一度にアップロードしてから、顧客に写真をアップロードしたことを示す電子メールを送信することです。Laravelでdropzone.jsを使って複数の画像をアップロード

ありがとうございます。

<form action="{{route('upload.photos')}}" method="post" enctype="multipart/form-data" class="dropzone" id="dropzoneFileUpload" > 
        {{csrf_field()}} 
        <div> 
         <h3 class="text-center">Upload Multiple Image By Click On Box</h3> 
        </div> 
        <div class="fallback"> 
         <input name="file" type="file" multiple /> 
        </div> 


       </form> 

<script type="text/javascript"> 
    Dropzone.options.imageUpload = { 
     maxFilesize:500, 
     acceptedFiles: ".jpeg,.jpg,.png,.gif", 
     autoProcessQueue: false, 
     uploadMultiple: true, 
     parallelUploads: 25, 
     maxFiles: 25 

    }; 
</script> 

$file = $request->file('file');  
     $fileName = time().$file->getClientOriginalName(); 
     Storage::disk('local')->put($car_id.'/'.$fileName, File::get($file)); 
     Photo::create([ 
      'photo_name'=>$fileName, 
      'car_id'=>$car_id 
     ]); 
$data = [ 
     'first_name'=>$car->user->first_name, 
     'last_name'=>$car->user->last_name, 
     'vin'=>$car->vin, 
     'model'=>$car->model, 
     'make' =>$car->make 
    ]; 
     Mail::send('admin.email.send_album_notification',$data,function($message) use($car){ 
      $message->subject('Pictures for Test - Example '); 
      $message->from('[email protected] .com','Example '); 
      $message->to($car->user->email,$car->user->full_name); 
     }); 
+0

実行中のLaravelのバージョンは何ですか? Mailablesは5.3で導入されました。何らかの理由でLaravelの複数のバージョンにタグを付けました。あなたのコードを投稿してください。 – Ian

+0

私は5.2を使用しています。私はコードを投稿します。ありがとう – allaghi

答えて

0

私は私の経験を共有した場合、今、あなたはすべてのフォームの右の識別を持って

<form> 
    <input type="hidden" value="{{ uniqid() .'-'. Carbon\Carbon::now()->timestamp }}" name="form-token"/> 
<form> 

のようなすべてのフォームのために1つの一意のIDを作成します。すべての画像とともに挿入します。すべての画像を追跡するのは非常に簡単です。例については

:あなたはあなたが一度にすべてアップロードされた画像を検索するために列をform_tokenしていることを挿入したら

Photo::create([ 
    'photo_name'=>$fileName, 
    'car_id'=>$car_id, 
    'form_token'=>$request->get('form-token'), 
]); 

。あなたのユーザーが5枚の画像をアップロードし、それぞれの画像が同じトークンを持っているとします。今すぐ画像をトークンで見つけてメールに送りましょう。

$photos = Photo::whereFormToken($request->get('form-token'))->get(); 
$data['photos'] = $photos; 
Mail::send('admin.email.send_album_notification',$data,function($message) use($car){ 
    $message->subject('Pictures for Test - Example '); 
    $message->from('[email protected] .com','Example '); 
    $message->to($car->user->email,$car->user->full_name); 
}); 

あなたのメールビューファイルには写真コレクションオブジェクトが含まれているので、印刷することができます。このようなもの:

@foreach($photos as $photo_key => $photo_value) 
     <?php $pathToImage = public_path()."/".$photo_value->image_name; ?> 
     <img src="{!! $photo_value->embed($pathToImage); !!}" style="max-width: 80%;padding-top: 20px;"> 
@endforeach 
+0

私はあなたが私たちを共有したことを本当に好きであり、とても有用であり、あなたのテクニックも好きです。画像のアップロードが完了したらメールを自動的に送信したいのですか? – allaghi

+0

こんにちは。 –

関連する問題