如图,这个案例实现一下, 使用Vue封装了一个图片上传,且回显到本地的一个小组件。
关键点:
-
window.URL.createObjectURL
使用这个函数,接受一个files, blob 对象, 然后返回一个在线的URL链接, 然后我们就可以把这个链接返回给我们. -
外部传入 isEmitBakc (props) 决定是否将获得到的对象发射回去, 从而去替图片的默认排列方式。
逻辑层:
export default{
name:"imgBack",
props:{
// 是否将文件发射回去 如果传入 true 则把对象发射回去
isEmitBack:{
type: Boolean,
default:false
}
},
data(){
return {
Ffiles:[],
bigimg:"", // 大图
}
},
methods:{
handleFile(e){
// 处理文件
const _target = e.target ? e.target : e.srcElement;
for (let s of _target.files) {
// 这个列表只是用来回显, 如果发送给服务器
// 使用 Formdata 用来封装一下
this.Ffiles.push(window