使用FormData对象并指定文件名的编码方式,将数据通过AJAX发送到服务器端。
示例代码:
let formData = new FormData();
let fileInput = document.getElementById('fileInput');
let file = fileInput.files[0];
formData.append('file', file, encodeURIComponent(file.name));
$.ajax({
url: '/upload',
type: 'POST',
dataType: 'json',
data: formData,
processData: false,
contentType: false,
success: function(response) {
//处理响应数据
},
error: function(xhr, status, error) {
//处理错误信息
}
});
在上述示例代码中,我们使用了FormData对象来创建表单数据,并使用encodeURIComponent方法来对文件名进行URL编码,确保文件名的正确性。同时,我们在AJAX请求中指定了processData和contentType为false,使得jQuery不会对数据进行处理,并且以multipart/form-data格式发送数据到服务器端。在服务器端获取文件名时,只需要进行解码即可得到正确的文件名。
上一篇:表单数据正在更新数据库而不是插入
下一篇:表单数据中的文件名去除前缀