【发布时间】:2019-03-11 16:36:12
【问题描述】:
我仍然是 laravel 的初学者并坚持使用上传 ajax 表单:它仍在发送显示在浏览器中的 json 响应,而不是像我期望的那样停留在当前页面上。 我只想得到一个我可以在当前页面上使用的 json 响应。
这是我的看法
<form action="/Project/UploadDocumentProject" enctype="multipart/form-data" method="post" id ="form0">
{{ csrf_field() }}
<input id="ProjectID" name="ProjectID" type="hidden" value="{{$Project->id}}">
<div class="form-group">
<input name="DocumentFile" id="DocumentFile" class="form-control" type="file" >
</div>
<div class="form-group">
<button id ="test" class="btn btn-success upload-image" type="submit">Upload</button>
</div>
</form>
这是我的 ajax 请求
$('#form0').on("submit", function(e){
e.preventDefault();
$(this).ajaxForm(options);
var options = {
complete: function(response)
{
if($.isEmptyObject(response.responseJSON.error)){
$("input[name='DocumentFile']").val('');
alert('Image Upload Successfully.');
}else{
printErrorMsg(response.responseJSON.error);
}
}
};
});
这是我的控制器
public function UploadDocumentProject (Request $Request)
{
$ProjectID=$Request->get('ProjectID');
$filename = $Request->DocumentFile->getClientOriginalName();
$Request->DocumentFile->storeAs('/public/projects/'.$ProjectID.'/files',$filename);
return response()->json(['success'=>'done']);
}
这是我的路线
Route::post('/Project/UploadDocumentProject','ProjectController@UploadDocumentProject');
我已经尝试在我的表单中指定 data-ajax="true" data-ajax-method="POST",但是即使在我的 ajax 请求中指定数据字段时,请求也不会考虑文件输入。 谁能帮助我?
谢谢! :)
【问题讨论】: