【问题标题】:Dropzone.js + Laravel - Multiple File Upload not working (working for only one file)Dropzone.js + Laravel - 多个文件上传不起作用(仅适用于一个文件)
【发布时间】:2016-04-30 15:36:49
【问题描述】:

我想借助 Dropzone.js 插件使用 AJAX 上传多个文件。

我所做的是-

HTML(视图)-

<div class="dropzone" id="add-slide-image">
</div>

JS-

Dropzone.autoDiscover = false;
var myDropzone = new Dropzone("div#add-slide-image",
                    {
                        url: baseUrl+"/slide/uploadimage",
                        params: {
                            _token: csrfToken
                        },
                        maxFilesize: 3, // MB
                        maxFiles:40,                 //Trigers "maxfilesexceeded" event
                        acceptedFiles:'image/*',
                        method: "post",
                        addRemoveLinks: true,
                        paramName: "file",
                        uploadMultiple: true
                    });

控制器-

public  function storeImageFromClientComputer(Request $request)
{
  //return $request->file('file');//Input::file('droped_images');
      $files = $request->file('file');
      $names = [];

      foreach ($files as $file)
      {
        $names = $file->getClientOriginalName();
      }
      return $names;
    /*//$files=$request->file('images');
    $file=$request->file('file');

    if($file)
    {
        $random_original_image_name=str_random(30).".".$file->getClientOriginalExtension();
        $file->move(public_path().'/uploads/userfiles/images/',Auth::id()."-".$random_original_image_name);
        $original_image_name=base_path()."/public/uploads/userfiles/images/".Auth::id()."-".$random_original_image_name;
        $thumb_image_name=base_path()."/public/uploads/userfiles/thumbs/".Auth::id()."-".$random_original_image_name;
        if(file_exists($original_image_name)){
            $thumb=Image::make($original_image_name)->resize(200,null,function($constraint){
                $constraint->aspectRatio();
            });
            $thumb->save($thumb_image_name);

            $id=UserSlidePhoto::insertGetId([
                'user_id'=>Auth::id(),
                'social_image_id'=>0,
                'original_image_name'=>Auth::id()."-".$random_original_image_name,
            'thumbnail_name'=>Auth::id()."-".$random_original_image_name
            ]);
            $image_info=UserSlidePhoto::find($id);
            return  response()->json($image_info,200);
        }
    }
  return  response()->json("ERROR",400);*/
}

此控制器仅用于测试是否收到所有文件。 我从这里只得到一个文件。 注释代码用于真实文件上传。

我总是在循环中只得到一个文件。

Dropzone 的 CDN 由 here (CSS + JS) 添加。

有人可以帮忙吗?

提前感谢您的帮助:)

【问题讨论】:

    标签: javascript php jquery laravel dropzone.js


    【解决方案1】:

    我已经这样解决了-

    JS-

    Dropzone.autoDiscover = false;
    var myDropzone = new Dropzone("div#add-slide-image",
                        {
                            url: baseUrl+"/slide/uploadimage",
                            params: {
                                _token: csrfToken
                            },
                            maxFilesize: 3, // MB
                            maxFiles:40,
                            parallelUploads: 10000,
                            acceptedFiles:'image/*',
                            method: "post",
                            addRemoveLinks: true,
                            paramName: "file",
                            uploadMultiple: true
                        });
    

    控制器 (PHP) -

    public  function storeImageFromClientComputer(Request $request)
    {
          $files = $request->file('file');
          $no_of_files = count($files);
          /*foreach ($files as $file)     //Don't know why this 'foreach' is not working
          {
            $file->getClientOriginalName();
          }*/
          if($no_of_files==0)
          {   //To check if any in-essential AJAX is called
            return "Valueless Calling !!!!!!";
          }
          for($i=0;$i<$no_of_files;$i++)
          {
            $file = $files[$i];//->getClientOriginalName();
            if($file)
            {
                $random_original_image_name=str_random(30).".".$file->getClientOriginalExtension();
                $file->move(public_path().'/uploads/userfiles/images/',Auth::id()."-".$random_original_image_name);
                $original_image_name=base_path()."/public/uploads/userfiles/images/".Auth::id()."-".$random_original_image_name;
                $thumb_image_name=base_path()."/public/uploads/userfiles/thumbs/".Auth::id()."-".$random_original_image_name;
                if(file_exists($original_image_name))
                {
                    $thumb=Image::make($original_image_name)->resize(200,null,function($constraint){
                        $constraint->aspectRatio();
                    });
                    $thumb->save($thumb_image_name);
    
                    $id=UserSlidePhoto::insertGetId(
                                                      [
                                                        'user_id'=>Auth::id(),
                                                        'social_image_id'=>0,
                                                        'original_image_name'=>Auth::id()."-".$random_original_image_name,
                                                        'thumbnail_name'=>Auth::id()."-".$random_original_image_name
                                                      ]
                                                    );
                    $image_info=UserSlidePhoto::find($id);
                }
            }
            else
                return  response()->json("ERROR",400);
          }
        return  "SUCCESS";
    }
    

    【讨论】:

      猜你喜欢
      • 2016-12-23
      • 2017-11-14
      • 2019-10-10
      • 2019-10-31
      • 1970-01-01
      • 2014-12-17
      • 2013-12-08
      • 1970-01-01
      • 2015-09-13
      相关资源
      最近更新 更多