将ajaxform与ajax合并以上载图像
我尝试在我的nodejs站点中创建上传照片。 我使用此代码选择文件并上载图像:将ajaxform与ajax合并以上载图像,ajax,Ajax,我尝试在我的nodejs站点中创建上传照片。 我使用此代码选择文件并上载图像: var fileData = null; function loadFile() { var preview = document.querySelector('file'); var file = document.querySelector('input[type=file]').files[0]; var read
var fileData = null;
function loadFile() {
var preview = document.querySelector('file');
var file = document.querySelector('input[type=file]').files[0];
var reader = new FileReader();
reader.onloadend = function () {
fileData = file;
}
if (file) {
reader.readAsDataURL(file);
}
}
function uploadFile() {
data = new FormData();
data.append('file', fileData);
$.ajax({
url: "/post_pdf/",
type: "POST",
data: data,
enctype: 'multipart/form-data',
processData: false,
contentType: false,
success: function(data) {
document.getElementById("result").innerHTML = 'Result: Upload successful';
},
error: function(e) {
document.getElementById("result").innerHTML = 'Result: Error occurred: ' + e.message;
}
});
}
使用loadfile函数我选择我的图像,使用Uploadfile函数我用ajax上传图像。
如果我单独使用它,它的工作将非常完美,并将图像上传到该位置。
但是,当我尝试将此代码添加到我的代码中时,会出现很多错误。
在我的代码中,我将pug文件中的所有表单发送到后端:
$('#account-form').ajaxForm({
error : function(e){
if (e.responseText == 'title-empty'){
av.showInvalidTitle();
}
},
success : function(responseText, status, xhr, $form){
if (status == 'success')
{
$('.modal-alert').modal('show');
console.log(responseText)
}}
});
我尝试将ajaxform与ajax合并,但当我合并formdata或在ajaxform中发送时,文件的数据是send error。
如何合并代码?
感谢您的帮助。尝试提交表单,它将随您的图像一起提交表单
let form = $("#form_id");
$.ajax({
url : $(form).attr("action"),
type: "POST",
dataType: "json",
processData: false,
contentType: false,
cache: false,
data: new FormData(form[0]),
success:function(data){
},
error: function (xhr, status, e) {
}
});
@约格什·帕特尔
当我使用此代码时:
$('#account-form-btn2').on('click', function(e) {
let form = $("#account-form");
$.ajax({
url: $(form).attr("action"),
type: "POST",
dataType: "json",
processData: false,
contentType: false,
cache: false,
data: new FormData(form[0]),
error: function (e) {
if (e.responseText == 'title-empty') {
av.showInvalidTitle();
}
},
success: function (responseText, status, xhr, $form) {
if (status == 'success') {
$('.modal-alert').modal('show');
}
}
});
});
出于某种原因,它将值发送到“路由”三次。
而且它也没有抓住成功的机会。
它将我发送到一个带有回调值的白色窗口。
如果需要,我可以发送获取值并返回值的函数(app.post)。如何将我的文件数据添加到此表单FATA。我编辑了posr,上传功能有误。如果你想提交所有数据和文件,你不需要更改任何内容。使用此功能,它会自动将所有数据和文件发布到你的服务器。我发布了一个我尝试过的新代码,请看一看。非常感谢。