1

ファイルのアップロードにLaravelプロジェクトで標準のHTML POSTを使用しており、Dropzoneを使用したいと考えています。

Dropzone のドキュメントと Laravel 実装のオンライン例を見てみましたが、POST ヘッダーにアップロードする単純なファイル投稿を取得できません。

したがって、Laravel FileBag は空のままで、その理由がわかりません。$_FILE をダンプすると、ヘッダーに渡されるファイルがなくなります。これ以外に、ブラウザーの観点からすると、dropzone の入力ボックスは正常に表示され、応答性が高く、ファイルのアップロード時にエラーが表示されません。

どんな助けでも大歓迎です。基本にまで落とし込んだコード:

マスターブレード:

    <!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <link rel="stylesheet" href="/dropzone.css">
    <script src="/dropzone.js"></script>

    <meta name="description" content="">
    <meta name="author" content="">

    <link rel="icon" href="../../favicon.ico">

  </head>

  <body>


      <script type="text/javascript">
            var baseUrl = "{{ url('/testUpload') }}";
            var token = "{{ Session::Token() }}";
            Dropzone.autoDiscover = false;
             var myDropzone = new Dropzone("div#dropzoneFileUpload", { 
                 url: baseUrl,
                 params: {
                    _token: token
                  }
             });
             Dropzone.options.myAwesomeDropzone = {
                paramName: "file", // The name that will be used to transfer the file
                maxFilesize: 2, // MB
                addRemoveLinks: true,
                accept: function(file, done) {

                },
              };
         </script>

  </body>
</html>

刃:

@extends("testmaster")

  <form action="/testUpload" enctype="multipart/form-data" method="post" class="dropzone">

    {{ csrf_field() }}

    <div class="container">
      <div class="dropzone" id="dropzoneFileUpload">
      </div>
    </div>

    <input type="submit" value="Submit">

  </form>

コントローラ:

public function testUpload(Request $request)
{
    dd($request);
}

ルート:

Route::get('/test','HomeController@test');
Route::post('/testUpload','HomeController@testUpload');

結果のリクエスト:

Request {#38 ▼
  #json: null
  #convertedFiles: null
  #userResolver: Closure {#398 ▶}
  #routeResolver: Closure {#399 ▶}
  +attributes: ParameterBag {#40 ▶}
  +request: ParameterBag {#39 ▶}
  +query: ParameterBag {#46 ▶}
  +server: ServerBag {#42 ▶}
  +files: FileBag {#43 ▼
    #parameters: []
  }
  +cookies: ParameterBag {#41 ▶}
  +headers: HeaderBag {#44 ▶}
  #content: null
  #languages: null
  #charsets: null
  #encodings: null
  #acceptableContentTypes: null
  #pathInfo: "/testUpload"
  #requestUri: "/testUpload"
  #baseUrl: ""
  #basePath: null
  #method: "POST"
  #format: null
  #session: Store {#440 ▶}
  #locale: null
  #defaultLocale: "en"
  -isHostValid: true
  -isForwardedValid: true
  basePath: ""
  format: "html"
}
4

2 に答える 2