我正在尝试使用下面的ajax代码将文件值发送到PHP,该文件已成功上传并存储在数据库中,但问题是我被重定向。
// submit form data
$('#myForm').submit(function () {
var file = $("#imgInp").get(0).files[0];
$.ajax({
type: $(this).attr('method'),
url: $(this).attr('action'),
contentType: false,
cache: false,
data: {
fname: $('#fname').val(),
lname: $('#lname').val(),
email: $('#email').val(),
pass: $('#myPass').val(),
rights: $(".rights:checked").val(),
imgInp: file,
userID: $('#userID').val(),
},
success: function(result) {
alert(result);
}
});
return false;
});
通过这样做解决了这个问题:
$(document).ready(function() {
$('#myForm').submit(function () {
var file_data = $('#imgInp').prop('files')[0];
var fname = $('#fname').val();
var lname = $('#lname').val();
var email = $('#email').val();
var pass = $('#myPass').val();
var rights = $(".rights:checked").val();
var userID = $('#userID').val();
var form_data = new FormData();
form_data.append('file', file_data);
form_data.append('fname', fname);
form_data.append('lname', lname);
form_data.append('file', file_data);
form_data.append('email', email);
form_data.append('pass', pass);
form_data.append('rights', rights);
form_data.append('userID', userID);
$.ajax({
type: $(this).attr('method'),
url: $(this).attr('action'),
contentType: false,
cache: false,
processData:false,
data: form_data,
});
return false;
});
});