【问题标题】:Dropzone not saving images in Laravel 6Dropzone 未在 Laravel 6 中保存图像
【发布时间】:2020-10-25 00:25:57
【问题描述】:

我已经在我的表单中实现了 Dropzone,现在我想将所有图像保存在我的“上传”目录中。 问题是在提交表单上,图像没有保存到目录中。网络选项卡下的控制台和网页上都没有错误。 还有,Mu上传目录是空的。

我需要建议。

刀片

    <form method="POST"  enctype="multipart/form-data" id="msform" action="/reports">
      @csrf
       <div name="gallery"  id="dropzoneForm" class="dropzone">
         <div class="fallback">
           <input id="files" multiple="true" name="file" type="file">
         </div>
       </div>
   <input type="submit" id="submit_multiple_form" name="submit" class="submit action-button" value="Submit"/>
    </form>

Javascript

 <script>
      Dropzone.options.dropzoneForm = {
      url: "/reports",
      autoProcessQueue : false,
      acceptedFiles : ".png,.jpg,.gif,.bmp,.jpeg",
      uploadMultiple: true,
      parallelUploads: 5,
      maxFiles: 15,
      maxFilesize: 1,
      acceptedFiles: 'image/*',
      addRemoveLinks: true,
      dictDefaultMessage: "Click here to browse or Drag & Drop your files",

       init:function(){
         var submitButton = document.querySelector("#submit_multiple_form");
         myDropzone = this;

         submitButton.addEventListener('click', function(){
           myDropzone.processQueue();
         });

         this.on("complete", function(){
           if(this.getQueuedFiles().length == 0 && this.getUploadingFiles().length == 0)
           {
             var _this = this;
             _this.removeAllFiles();
           }
         });
       }
};
</script>

控制器

public function multiStepStore(Request $request)
{
  if($request->hasFile('file'))
  {
  $file = $request->file;
  $extension = $file->getClientOriginalExtension();
  $imageName = time() . '.' . $extension;
  $file->move(public_path('src/uploads'), $imageName);

  return response()->json(['success' => $imageName]);

  }
}

【问题讨论】:

  • 您是否尝试过调试您的 PHP 代码?图像是否到达 PHP?
  • @SalimIbrogimov 你有什么想法吗?
  • 能否请您添加请求并将输出粘贴到此处dd($request-&gt;all());
  • @STA dd($request->all());返回空数组,不知道为什么。
  • @Shaan,问题出在你的 js 上。检查控制台,发现错误

标签: php laravel dropzone.js laravel-6


【解决方案1】:

解决方案是我们需要将 token 添加到 Dropzone Options 中。 这是我根据问题解决的代码。

刀片

    <form method="POST"  enctype="multipart/form-data" id="msform" action="/reports">
      @csrf
       <div id="dropzoneForm" class="dropzone"></div>
   <input type="submit" id="submit_multiple_form" name="submit" class="submit action-button" value="Submit"/>
    </form>

JavaScript

<script>
      Dropzone.options.dropzoneForm = {
      url: "/reports",
      autoProcessQueue : false,
      dictDefaultMessage: "Click here to browse or Drag & Drop your files",
      sending: function(file, xhr, formData) {
          formData.append("_token", "{{ csrf_token() }}");
      },

       .................................
</script>

控制器

public function multiStepStore(Request $request)
{
  if ($request->file('file')!=null)
  {
  $file = $request->file;
  $extension = $file->getClientOriginalExtension();
  $imageName = time() . '.' . $extension;
  $file->move(public_path('src/uploads'), $imageName);

  return response()->json(['success' => $imageName]);

  }
}

现在我的 Dropzone 可以正常工作了。是啊!!!!!!!!!

【讨论】:

    猜你喜欢
    • 2014-10-10
    • 1970-01-01
    • 2020-06-13
    • 1970-01-01
    • 1970-01-01
    • 2017-11-03
    • 2022-10-11
    • 1970-01-01
    • 2013-12-20
    相关资源
    最近更新 更多