1.问题场景
工作中用到的页面传递对象先将js对象转换为JSON字符串,存入共通页面的input框的value中,下画面获取共通画面input框的value,把value(JSON字符串)转换为js对象,完成页面间值的传输
遇到的问题:无法通过JSON转换的方式,将从前画面input框获取的File对象传递到下画面。
解决:前画面先将File对象转换为DataURL,通过JSON将DataURL转换为JSON字符串,以input框的value形式传递到下画面(可以采用你自己页面间传递字符串的方式),下画面将JSON字符串转换为DataURL,再把DataURL转换成File对象,这时你已经拿到你在上画面传递过来的完整的图片file对象了,如果你需要上传到后台的话,可以使用FormData上传File对象实现文件上传
需要用的函数如下 具体流程略有差异
(如果你的项目可以在页面间传递字符串,你也可以使用这种方式进行页面间图片file对象的传递)
2.DataURL和File对象转换
(如果你有自己的页面间传递字符串的方式,你只需要关注这两个方法)
将 File对象 转换为 DataURL
var r = new FileReader(); //
r.readAsDataURL(file);
r.onload = function(){
console.log(r.result);//图片的base64
}
//r.result就是你要传给下个画面的字符串
将 DataURL 转换为 File对象
function