4Manuals

  • PDF Cloud HOME

通过dropzone laravel通过电子邮件发送多个图像 Download

    CSS / JS-如何覆盖一个孩子而不是其他孩子的父母过渡 反应:更改方向后触发重新渲染和offsetWidth的重新计算 我的Javascript从'string'转换为'integer'或'number'无效 碳日期差异方法在Laravel 5.7中给出了错误的日期差异 如何删除外部索引并合并内部json 在React Native 图片无法通过javascript刷新 如何使用PHP将https错误状态设置为404,以便可以通过.htaccess文件处理? 如何在react图表上的datakey中操作DateTime 在Cypress中保存变量

我想上传多个图像文件并通过电子邮件发送给客户。但是,将call to a member function getclientoriginalname() on array添加到dropzone时,ajax请求会收到此错误uploadMultiple: true,。没有该选项的多张图片上传。无论如何,我想通过电子邮件发送多个文件,该怎么办?

dropzone js代码:

Dropzone.options.uploadimg = {
            paramName: "file", // The name that will be used to transfer the file
            maxFilesize: 5, //MB
            acceptedFiles: ".jpeg,.jpg,.png",
            uploadMultiple: true,
            addRemoveLinks: true,
            success: function(file, response) 
            {
                $.notify({
                    message: 'Image uploaded Successfully!' 
                    },
                    {
                    type: 'success'
                });
            },
            error: function(file, response)
            {
               return false;
               console.log('fail to upload');
            },
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        }

SendMailController发送上传的图像。

    public function sendNotifications(Request $request)
    {
        $id_int = Cookie::get('jobid');
        $img_name = Cookie::get('imgName');
        
        $data = DB::table('customers')
        ->join('jobs', 'jobs.id', '=', 'customers.id')
        ->select('firstname','email')
        ->where('jobs.id', '=', $id_int)
        ->get()->toArray();

        foreach ($data as $value) {
            $customer_firstname = $value->firstname;
            $customer_email = $value->email;
        }

        $pathToFile = public_path() . "\\uploads\\" . $img_name;

        //send the email to the relevant customer email
        Mail::to($customer_email)->send(new SendMail($customer_firstname, $pathToFile), function($message){
                $message->attach($pathToFile);
        });

    }

图片上传控制器:

class ImageUploadController extends Controller
{
    public function uploadImage(Request $request){

        $img_file = $request->file('file');
        
        $imgName = $img_file->getClientOriginalName();
        
        Cookie::queue(cookie('imgName', $imgName, $minute = 5));

        $img_file->move(public_path('uploads'), $imgName);
    }
}

当我上传多张图片并通过电子邮件发送sendinding时,它仅发送dropzone中最后上传的文件。如何发送所有上传的文件?

2 个答案:

答案 0 :(得分:1)

由于有多个文件,您需要遍历file变量以获取文件

class ImageUploadController extends Controller
{
    public function uploadImage(Request $request){

        $img_files = $request->file('file');
        foreach($img_files as $img_file){
            $imgName = $img_file->getClientOriginalName();

            Cookie::queue(cookie('imgName', $imgName, $minute = 5));

            $img_file->move(public_path('uploads'), $imgName);
        }
    }
}

答案 1 :(得分:0)

尝试一下

用于单张图片上传代码

class ImageUploadController extends Controller
{
    public function uploadImage(Request $request){


    if($request->hasFile('file')) {
    $file = $request->file('file');


    $fileName = $file->getClientOriginalName();

        Cookie::queue(cookie('imgName', $fileName , $minute = 5));

        $img_file->move(public_path('uploads'), $fileName );
    }
}
}

如果要上传多个文件

 $datas = [];
 $result = [];
 if ($request->hasfile('file')) {
    foreach ($request->file('file') as $key => $file) {
             $name = $file->getClientOriginalName();
             $file->move(public_path() . '/uploads/', $name);
             $datas[$key] = $name;
             $file = new ModelName();
                foreach ($datas as $data) {
                        $file->file= $data;
                        $file->save();
                    }



Similar searches
    创建表中的配置单元日期功能 如何通过jQuery使用div选择器切换包括自身在内的类 Samsung RF261BEAEBC Refrigerator User Manual 是否可以通过pdf-reader读取rubyzip内的pdf文件? Wordcloud中单词之间的间距