发表于: 2017-06-10 21:17:44

1 629


今日所做:

1.使用input【type=file】选择好图片后,将图片数据存储到formData中

存储的方式是这样的,先创建一个formdata对象,然后把input中的图片

数据通过append方法添加到formdata对象中去

2.

var formData = new FormData();
formData.append('file', $('#picture')[0].files[0]);

3.在使用http方法传输数据的时候,有几点是需要注意的:

首先是header需要做改变,传输类型要改为undefined,这样在传输的时候

图片才不会被解析

4.此外就是formdata这个对象不可以用原来传参的方式来传输了,有一个可行的

办法是使用transformRequest来传输:

headers: {'Content-Type': undefined},
transformRequest: function () {
var formData = new FormData();
   formData.append('file', $('#picture')[0].files[0]);
   return formData;
}

除了这种传输方式,其实还可以提前将formdata数据制作好,然后使用data传输过去

5.学习filereader,将存储在input中的图片数据展示出来,用作预览:

var reader = new FileReader();
// 图片文件转换为base64
reader.readAsDataURL(pit);
reader.onload = function () {
// 显示图片
   document.getElementById("file-img").src =reader.result;

6.做任务8的demo

明日计划:

将图片上传的界面做好,并增加一些其他的功能

遇到的问题:

像这种图片格式的数据不可以用params来传参,但是可以用data来传参,那么data和params的区别是否在于

params用来传输一些简单的参数,而data用来传输一些存储较大的数据?

在获取input中的图片数据时,使用的jquery选择器的方法非常奇怪,在$("#picture")后面还要加一个【0】,

本来已经是id选择器了,选出的元素是唯一的,为什么还在后面加一个序列号0,又不是数组

今日收获:

学习用input获取图片格式的数据并上传



返回列表 返回列表
评论

    分享到