1
我正在嘗試上傳laravel中的文件,但每次點擊提交按鈕時,都會在控制檯中顯示內部服務器錯誤。我已經通過get請求檢查死機,以檢查控制器功能是否正常工作,並且工作正常。可以說有什麼問題嗎? 這裏是我的代碼示例在laravel5.3中上傳文件時發生內部服務器錯誤
航線代碼
Route::post('/storefile','[email protected]');
控制器
public function storeFile(Request $request){
if($request->ajax()){
echo "got";
}
else echo "not ajax";
}
視圖
@extends('layouts.app')
@section('stylesheet')
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<link type="text/css" href="/css/bootstrap-tagging.css" rel="stylesheet">
@endsection
@section('content')
<div class="validation-system">
<div class="validation-form">
<form id="test-form" action="/storepublication" method="post" enctype="multipart/form-data" >
{!! csrf_field() !!}
<div class="col-md-3 form-group1">
<label class="control-label">Upload Paper</label>
<input type="file" name="file" id="paper">
</div>
<div class="col-md-3 form-group1">
<input type="submit" id="submit" name="submit" class="btn btn-primary" value="Add">
</div>
</form>
</div>
</div>
@endsection
@section('scripts')
<script>
$(document).ready(function() {
$("#test-form").submit(function (event) {
event.preventDefault();
var file_data = $('#paper').prop('files')[0];
var form_data = new FormData();
form_data.append('file', file_data);
$.ajax({
url: "/storefile",
type: "post",
data: form_data,
processData: false,
contentType: false,
success: function (res) {
document.getElementById("response").innerHTML = res;
}
});
});
});
</script>
@endsection
沒有不幫 –
你用'檢查($請求 - >文件( '文件') )'在你的控制器中,而不是'if($ request-> ajax())' – C2486
是剛纔做的。不用找了。剛剛發現,在服務器端,我有令牌不匹配異常。我已經嘗試過這樣的數據:{「_token」:「{{csrf_token()}}」,「paper」:form_data}但是不匹配的異常存在 –