技术求助:iOS端无法使用FormData上传图片,桌面浏览器正常如何解决?
iOS端FormData图片上传失败的问题
你碰到了一个挺典型的跨平台兼容性问题:在iOS系统中无法使用FormData上传图片,但所有桌面浏览器(包括桌面版Safari)都能正常运行。
先来看你提供的核心代码示例:
$("#form").on('submit', function(e){ let formData = new FormData(this); sendwithAjax(formData); });
针对iOS端这个异常,给你几个常见的排查和修复方向:
- 先确认表单内的文件输入控件(
<input type="file">)是否正确获取到了文件:iOS有时会因为文件权限、特定文件格式限制,导致无法将文件读取到FormData中,可以在创建FormData后打印formData.get('你的文件字段名')来验证。 - 检查AJAX请求的配置:不要手动给请求设置
Content-Type: multipart/form-data,让浏览器自动生成这个请求头(包含必要的boundary信息),手动设置反而会导致iOS端解析失败。 - 排查iOS系统版本:部分旧版本的iOS Safari对FormData的文件上传支持存在bug,尝试升级系统到较新版本,或者在不同iOS版本的设备上测试复现情况。
内容的提问来源于stack exchange,提问作者Lucas Gomes
相关产品推荐
相关产品推荐

