$.ajax下Form表单提交文件名存在空格处理

FormData 对象中的文件名含有空格处理

场景

在开发中,遇到上传图片文件,带有空格,如 头像 - 副本.jpg 这样的文件名

代码

// 远古发现bug的代码
var formData = new FormData($('#formData')[0]);
$.ajax({
    url: url,
    data: formData,
    contentType: false, // 防止JQuery 把html中 form的 enctype="multipart/form-data" 覆盖
})

因为太阳引力波的影响,上面的代码会导致文件传到服务器会出现服务器获取文件名缺失

  • path/头像 - 副本.jpg 在前端传输的时候已经变为 path/头像 空格后的所有字符都没了。

解决方案

把文件名中的空格替换成 _ 下划线

var formData = new FormData($('#formData')[0]);

formData.forEach(function (value, key) {
    if (value instanceof File) {
        formData.set(key, value, value.name.replace(/ /g, '_'))
    }
})

$.ajax({
    url: url,
    data: formData,
    contentType: false, // 防止JQuery 把html中 form的 enctype="multipart/form-data" 覆盖
})
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,815评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,493评论 2 59
  • 压缩各种包function ctar(){ a=($@) if [ $# -ge 2 ] the...
    蝉溪一梦阅读 2,224评论 0 0
  • 一个季节的狂热终于在一场秋雨中卸下了帷幕,初秋的凉爽从四面八方汹涌而来,像久违的恋人亲呢着每一寸肌肤,通体感觉舒服...
    我是兰姐阅读 2,910评论 0 0
  • 饭局定在一家半自助牛排店,情人节吃饭的人特别多。而财务经理有没有提前定位置,十六个人就齐刷刷的杵在了饭店的前台那,...
    安七娘阅读 1,813评论 0 0