文件数据在服务器端是空白数组:Laravel 5.3
File Data is blank array in server side: Laravel 5.3
我正在尝试 post 文件使用 JQuery。下面是我的代码。
<script language="javascript">
$(document).ready(function() {
$('#frmUpdateProfile').on("submit", function(event) {
event.stopPropagation(); // Stop stuff happening
event.preventDefault(); // Totally stop stuff happening
var data = {
"FileName" : event.target.FileName.files,
"_token" : "{!! csrf_token() !!}"
};
$.ajax({
url: '{{URL::route("UpdateProfile")}}',
method: "POST",
async: true,
data: JSON.stringify(data),
processData: false,
contentType: "application/json; charset=utf-8",
success: function (msg) {
SuccessCallback(msg);
},
error: function (jqXHR) {
ErrorCallback(jqXHR);
}
});
});
});
</script>
我试过了processData: false,
。在 Js 中调试时,您可以检查数据中是否有图像。下面是截图。
但是当我在Laravel中打印请求数据时,它显示空白数组。
Html表格在这里
<form method="POST"
action="http://localhost:1234/AS6-Code/public/UpdateProfile"
accept-charset="UTF-8"
enctype="multipart/form-data"
id="frmUpdateProfile">
<input name="_token" type="hidden" value="26KWkWdNqe5iOFE8VRBf1dRnL5xKxwN25jg3tAFW">
<input type="hidden" name="_token" value="26KWkWdNqe5iOFE8VRBf1dRnL5xKxwN25jg3tAFW">
<input multiple="1" name="FileName" type="file">
<input class="btn btn-info" type="submit" value="Update">
</form>
我是不是做错了什么?
尝试使用 FormData
发送您的请求:
var data = new FormData($('#frmUpdateProfile')[0]);
同时将 contentType 设置为 false:
contentType: false
同时更新
event.target.FileName.files
到
event.target.FileName.files[0]
event.target.FileName.files
是一个 FileList 对象。我相信您需要 event.target.FileName.files[0]
。
我正在尝试 post 文件使用 JQuery。下面是我的代码。
<script language="javascript">
$(document).ready(function() {
$('#frmUpdateProfile').on("submit", function(event) {
event.stopPropagation(); // Stop stuff happening
event.preventDefault(); // Totally stop stuff happening
var data = {
"FileName" : event.target.FileName.files,
"_token" : "{!! csrf_token() !!}"
};
$.ajax({
url: '{{URL::route("UpdateProfile")}}',
method: "POST",
async: true,
data: JSON.stringify(data),
processData: false,
contentType: "application/json; charset=utf-8",
success: function (msg) {
SuccessCallback(msg);
},
error: function (jqXHR) {
ErrorCallback(jqXHR);
}
});
});
});
</script>
我试过了processData: false,
。在 Js 中调试时,您可以检查数据中是否有图像。下面是截图。
但是当我在Laravel中打印请求数据时,它显示空白数组。
Html表格在这里
<form method="POST"
action="http://localhost:1234/AS6-Code/public/UpdateProfile"
accept-charset="UTF-8"
enctype="multipart/form-data"
id="frmUpdateProfile">
<input name="_token" type="hidden" value="26KWkWdNqe5iOFE8VRBf1dRnL5xKxwN25jg3tAFW">
<input type="hidden" name="_token" value="26KWkWdNqe5iOFE8VRBf1dRnL5xKxwN25jg3tAFW">
<input multiple="1" name="FileName" type="file">
<input class="btn btn-info" type="submit" value="Update">
</form>
我是不是做错了什么?
尝试使用 FormData
发送您的请求:
var data = new FormData($('#frmUpdateProfile')[0]);
同时将 contentType 设置为 false:
contentType: false
同时更新
event.target.FileName.files
到
event.target.FileName.files[0]
event.target.FileName.files
是一个 FileList 对象。我相信您需要 event.target.FileName.files[0]
。