今天完成的事情: 图片上传后端成功;了解到FormData,和 FileReader,
FormData:将form表单元素的name与value进行组合,实现表单数据的序列化,从而减少表单元素的拼接,提高工作效率。
FileReader :FileReader对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对象指定要读取的文件或数据。
其中File对象可以是来自用户在一个<input>元素上选择文件后返回的FileList对象,也可以来自拖放操作生成的 DataTransfer对象,还可以是来自在一个HTMLCanvasElement上执行mozGetAsFile()方法后返回结果。
明天计划的事情:完善angular任务,尽快完成angular框架的学习,要好好的巩固JS知识,完成深度思考问题;JS知识巩固。
收获:
使用FormData 将图片转为键对值,进行往后端服务传值;
// 上传后端
upload() {
//通过FormData构造函数创建一个空对象
var formdata = new FormData();
//可以通过append()方法来追加数据
formdata.append("file", this.imagePath);
//通过get方法对值进行读取
console.log(formdata.get("file"));
let ulr = "/a/u/img/task";
this.http.post<any>(ulr, formdata).subscribe((response: any) => {
this.data = response;
// this.dataObj = response.data.articleList;
console.log(this.data);
})
}
通过FileReader 来实现获取图片的file值,来进行图片的展示及预览
fileChange(files: any) {
this.Rbutton = true;
this.file = files;
console.log(this.file); // 输出图片各部分信息
this.fileName = files[0].name; // 图片名字
this.fileSize = files[0].size; // 图片大小
if (files.length === 0) {
return;
}
// 将图片展示出来: 读取实例
const reader = new FileReader(); // 文件读取对象
this.imagePath = files[0];
reader.readAsDataURL(files[0]); // 使用刚刚设的对象取 file 的值
reader.onload = () => {
this.imgURL = reader.result; // 选择所要显示图片的img,赋值给img的src
};
}
评论