如何解决为什么laravel $request->file 返回null?
我有一个代码,我在另一个应用程序中使用该代码使用 Ajax 上传文件,该代码运行良好。 在带有 Jquery 模态对话框的新应用程序中重用此代码未按预期工作。以下是我的表格:
{!! Form::open(['method' => 'POST','route' => ['auto-evaluation-documents.store'],'files' => 'true','role' => 'form','id' => 'document_form']) !!}
<div class="modal-content" modal-transclude="" title="New Attachment">
<div class="form-group">
<input class="ng-scope" type="file" name="file" id="file">
</div>
</div>
{!! Form::close() !!}
下面是我的模态对话框
var dialog;
dialog = $(".modal-content").dialog({
autoOpen: false,height: 400,width: 600,modal: true,buttons: {
"Save": uploadFile,Cancel: function() {
$('#file').val('');
$('.c-fileupload__body').hide();
dialog.dialog( "close" );
}
},close: function() {
//form[ 0 ].reset();
//allFields.removeClass( "ui-state-error" );
$('#file').val('');
$('.c-fileupload__body').hide();
}
});
$("#new_attachment_button").button().on( "click",function() {
dialog.dialog( "open" );
});
function uploadFile() {
var document_form = $('#document_form');
var options = {
beforeSubmit: showRequest,// pre-submit callback
success: showResponse,// post-submit callback
uploadProgress: OnProgress,//upload progress callback
data: { 'document_type': 'file','evaluation_session_id':'2'},url: document_form.attr('action'),type: 'post',dataType: 'json'
};
// attach handler to form's submit event
document_form.ajaxSubmit(options);
// return false to prevent normal browser submit and page navigation
return false;
}
// pre-submit callback
function showRequest(formData,jqForm,options) {
var file_msg = $('#file_msg');
file_msg.empty().hide();
var value = $('#file').fieldValue();
if (!value[0]) {
message = "<li>Please select a file to upload</li>";
file_msg.append(message).show();
return false;
} else {
formData.push({ 'name': 'file','value': value[0]});
return true;
}
}
在 Laravel 控制器中,我这样做:
public function store(Request $request)
{
$file = $request->file('file');
$return['success'] = true;
$return['file_name'] = $file;
return response()->json($return,200,['Content-Type' => 'text/html']);
}
但是,当我检查控制台时,$request->file('file') 得到的结果为空
如果我执行 $request->get('file'),我会得到 C:\fakepath\banner-image.jpg
为什么即使我的表单有 enctype="multipart/form-data" $request->file('file') 也不起作用?
解决方法
你应该尝试转储 $request->all();查看错误是否在前端。如果您有名为“file”的文件,则错误在前端/Angular 中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。