.net + angular实现前后端附件上传保存删除及预览功能

附件上传功能

前端

主要是通过原生态的input ·type = ‘file’·提供文件选择器,当文件选择发生变化时。当事件发生时,它会调用组件类中的uploadFile方法,并将事件对象($event)作为参数传递。

* html *
<input
    class="file-upload-button"
    type="file"
    (change)="uploadFile($event)"
/>

获取文件对应的file数据,其中包含相关的fileName、fileContent、fileType

const file = $event.target.files[0];

当你通过元素选择文件后,这个元素会持有一个FileList对象(即使只选择了一个文件也是如此,但FileList在这种情况下只包含一个File对象)。你可以通过访问这个元素的files属性来获取这个FileList对象,然后可以遍历或访问特定的File对象。

每个File对象都包含了一些有用的属性,如:

  1. name:文件的名称,包括扩展名(如果有的话)。
  2. type:文件的MIME类型(例如,“image/png”)。
  3. size:文件的大小,以字节为单位。

但是,File对象本身并不直接包含文件的实际内容。如果你需要访问文件的内容(例如,为了上传或处理文件),你可能需要使用FileReader API来读取文件内容。FileReader API 提供了一系列的方法来读取文件,如readAsText()(读取文件内容为文本)、readAsDataURL()(读取文件内容为一个DataURL,即一个包含文件内容的base64编码的URL)或readAsArrayBuffer()(读取文件内容为一个ArrayBuffer对象,这允许你以二进制形式处理文件)。

uploadFile(event:any){
	const file = event.target.files[0];
	var upload = {
		filename = file.name //文件名
		filecontent = //文件内容 base64数据格式
		fileType = file.type//文件类型
	}
	getBase64(file , (f,string)=>{
		upload.filecontent = f
	})
	
	/*
	这部分就可以实现后端接口将得到的upload对象传递给后端,保存下来
	*/
	uploadService.saveFile(upload);
	
}

getBase64(f: File, callback: (f: string) => void): void {
       // 创建一个FileReader实例  
        var reader = new FileReader();  
  
        // 读取文件内容完成后的回调函数
        //FileReader 有一个 onload 事件处理器
        //当文件读取完成并且结果可用时,这个处理器会被用。在 onload 事件处理器的回调函数中
        //你可以通过 event.target.result 访问到 DataURL。这个 DataURL 是一个字符串,
        //包含了文件的 Base64 编码内容,前面还带有表示文件类型的 MIME 类型的 data: 前缀  
        reader.onload = function(e) {  
            // e.target.result 包含了文件的内容  
            ()=> callback(e.target.result);  
  
            // 现在你可以使用fileContent变量了,比如上传到服务器  
            console.log(fileContent);  
            // 或者执行其他操作...  
        };  
        // 使用readAsDataURL()方法读取文件内容  
        reader.readAsDataURL(f); 
}

自此前端部分的文件上传并转化base64( 为啥要用base64格式进行数据传输 )格式数据处理完成;

后端部分

初始数据:从前端获取文件的数据upload

待续。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值