Javascript 文件上传返回未定义
首先,我是一名使用JavaScript的web开发新手 我正在尝试设置一个表单,用户可以在其中为其个人资料添加自己的图像。但是,在测试代码和选择图像时,返回的值未定义。由于某些原因,它没有确认所选文件 这是我的密码: HTML JavaScriptServer端Javascript 文件上传返回未定义,javascript,jquery,html,node.js,forms,Javascript,Jquery,Html,Node.js,Forms,首先,我是一名使用JavaScript的web开发新手 我正在尝试设置一个表单,用户可以在其中为其个人资料添加自己的图像。但是,在测试代码和选择图像时,返回的值未定义。由于某些原因,它没有确认所选文件 这是我的密码: HTML JavaScriptServer端 app.post('/player_pic', function(req, res) { console.log('Adding player picture...........................');
app.post('/player_pic', function(req, res) {
console.log('Adding player picture...........................');
console.log('Pic = ' + req.body.PlayerPic);
console.log('ID = ' + req.body.PlayerID);
});
以下是我得到的结果:
添加播放器图片
Pic=未定义
ID=1532947080817
我环顾四周,找不到一个解决方案,为什么当我从表单中的本地文件夹中选择一个图像时,它会以未定义的形式返回
在此,我们将非常感谢您的帮助:
谢谢我想您需要使用多部分/表单数据头进行文件传输
const fileData = $('#sortpicture').prop('files')[0];
const formData = new FormData();
form_data.append('file', fileData);
$.ajax({
type: 'POST',
url: '/player_pic',
data: formData,
contentType: 'multipart/form-data',
success: function(php_script_response){
console.log(php_script_response);
}
})
是否在开始标记中包含enctype=多部分/表单数据?是否发送正确的内容类型?如果要发送文件/文件数据,需要将内容类型设置为多部分/表单数据。有关更多信息,请参阅。我没有太感谢您为我标记此项,但我仍然得到相同的信息results@AlexMorrison在发布$pic_form.serialize之前,你能检查一下里面有什么吗?可能您的文件输入没有包含在序列化中?@AlexMorrison您可以简单地记录序列化数据,并查看它是否包含您的文件,如:console.log$pic_form.serialize;contentType:“multipart/form data”-这不起作用,缺少边界参数。php_script_response-OP正在服务器上使用JavaScript。
app.post('/player_pic', function(req, res) {
console.log('Adding player picture...........................');
console.log('Pic = ' + req.body.PlayerPic);
console.log('ID = ' + req.body.PlayerID);
});
const fileData = $('#sortpicture').prop('files')[0];
const formData = new FormData();
form_data.append('file', fileData);
$.ajax({
type: 'POST',
url: '/player_pic',
data: formData,
contentType: 'multipart/form-data',
success: function(php_script_response){
console.log(php_script_response);
}
})