关于php ajax文件上传中,FormData的使用和编码问题

最近项目中需要一个文件上传的功能,就想写一个 ajax无刷新的文件上传

首先你需要一个file来存储需要上传文件的文件名

160804_1ku7_2379342.png

当file被改变时,读取数据,并插入至formdata中,然后通过ajax上传到后端

关于php ajax文件上传中,FormData的使用和编码问题_第1张图片

这里需要注意

161115_Xr9h_2379342.png

processData设置为false。因为data值是FormData对象,不需要对数据做处理。
cache设置为false,上传文件不需要缓存。
contentType设置为false。是因为数据是formData。

这三项必须要写,否则会报错。

这是一个坑。然后数据传到后台之后(上传文件就不讲了),由于编码问题,在move_uploaded_file的时候会出现错误,我们需要对文件名进行编码处理

$_FILES['file']['name'] = iconv('UTF-8','gb2312',$_FILES['file']['name']);

这样基本上就可以成功上传文件了

关于php ajax文件上传中,FormData的使用和编码问题_第2张图片

 

转载于:https://my.oschina.net/cty213/blog/731240

你可能感兴趣的:(关于php ajax文件上传中,FormData的使用和编码问题)