2016-12-01 98 views
1

我是新來的laravel 5和PHP,所以我不明白爲什麼我得到這個問題。文件上傳返回空結果

我想使用ajax上傳文件(視頻或圖像),但服務器返回空結果。即使當我調節FormData時,表單看起來也是空的。

HTML

<form enctype="multipart/form-data" id="upload-file" role="form" method="POST" action="" > 
    <input type="hidden" name="_token" value="{{ csrf_token()}}"> 
    <input type="file" class="form-control" id="catagry-logo" name="videologo"> 
</form> 
<div id="video-submit">Submit</div> 

的Javascript

$.ajaxSetup({ 
    headers: { 
      'X-CSRF-Token': $('meta[name=_token]').attr('content') 
    } 
}); 

$('#video-submit').on('click', function() { 
    console.log(new FormData($("#upload-file")[0])); 
    $.ajax({ 
      type:'post', 
      url:'uploadvideo', 
      data: new FormData($("#upload_form")[0]), 
      processData: false, 
      contentType: false, 
      success:function(response){ 
       console.log(response); 
      } 
    }); 
}); 

路線

Route::post('/uploadvideo', '[email protected]'); 

控制器

public function videoUpload() { 
    return response()->json(json_encode(Input::all())); 
} 

響應

FormData {} 
[] 
+0

使用請求類'公共函數videoUpload(請求$請求)'然後使用'dd($ request-> input('videologo'))' – MiSAKACHi

+0

爲什麼你的action =「」爲空? –

+0

這意味着POST到自我 – MiSAKACHi

回答

0

看來你正在使用的Input門面

嘗試使用Request

而且,你正在返回的JSON響應似乎是錯誤的方式熟悉自己,所以試試這個。

注意

確保在您的INI文件中的PHP帖子上傳大小可以處理您上傳的文件大小或您將結束與空白POST請求

在您php.ini文件設置以下指令以適應您的上傳

  • post_max_size =(以MB爲單位的大小,POST請求的總大小)
  • upload_max_filesize =(尺寸以MB,在POST請求中的單個文件的大小)

控制器

use Illuminate\Http\Requests; 

public function videoUpload(Request $request) { 
    return response()->json(['video' => $request->input('videologo')]); 
} 
+0

感謝您的回覆。現在我得到一個空數據,我的測試文件大小隻有35KB,仍然不能返回正確的數據 –

+0

你應該真的嘗試發佈一個字符串,看看它是否返回你發佈的確切字符串。 – MiSAKACHi

+0

我已經將數據傳遞給了像string和int這樣的控制器。 –