.NetCore6.0前后端分离文件上传

一、前端代码(vue)

<div id="cont" class="flex auto">
    <div class="flex-cell-1">
            <div class="photo" @click="fileclick()" >
                <img  class="img" :src="file + user.UserImg" alt="">
                <input type="file" @change="filechange()" class="file none" name="file" id="file">
            </div>
            <p>请传输10MB以下的文件</p>
    </div>
</div>
 <script>
    new Vue({
	    el:'#cont',
	    data(){
	        return{
	            file:'服务器地址/Images/',
	            UserImg:'',
	        }
	    },
	    mounted(){

	    },
	    methods:{
	        fileclick(){
	            $('.file').click();
	        },
	        filechange(){
	            //获取文件数组
	            var file = $('.file').get(0).files[0];
	
	            var formData = new FormData();
	            formData.append("file",file);
	
	            $.ajax({
	                url:'服务器地址/api/User/SaveImg',
	                data:formData,
	                type:'post',
	                processData:false,
	                contentType:false,
	                success:function(response){
	                    if(response.isSuccess){
	                        if(response.returnMsg != '' &&  response.returnMsg != null){
	                            localStorage.setItem('UserImg',response.returnMsg);
	                        }else{
	                            localStorage.setItem('UserImg','');
	                        }
	                        //读取文件
	                        var reader = new FileReader();
	                        reader.readAsDataURL(file);
	                        //读取成功,则执行方法函数
	                        reader.onload = function(e){
	                            $('.img').get(0).src = e.target.result;
	                        }
	                    }else{
	                        console.log(response);
	                    }
	                }
	            })
	
	        },

	    }
	})
</script>

请添加图片描述
二、后台api代码

[Route("api/[controller]")]
[ApiController]
public class UserController : ControllerBase
{
    private readonly IWebHostEnvironment _webHostEnvironment;

   	 private IConfiguration _configuration { get; set; }
	public UserController(IConfiguration config, IWebHostEnvironment webHostEnvironment)
    {
        _configuration = config;
        _webHostEnvironment = webHostEnvironment;
    }

	//保存头像图片
    [HttpPost]
    [Route("SaveImg")]
    public JsonResult SaveImg()
    {
        var formFile = Request.Form.Files[0];
        var fileSize = formFile.Length;
        if (fileSize > 1024 * 1024 * 10) //10M TODO:(1mb=1024X1024b)
        {
            return new JsonResult(new { isSuccess = false, resultMsg = "上传的文件不能大于10M" });
        }
        var currentDate = DateTime.Now;
        var fileExtension = Path.GetExtension(formFile.FileName);//获取文件格式,拓展名
        var saveName = formFile.FileName.Substring(0, formFile.FileName.LastIndexOf('.')) + "_" + currentDate.ToString("yyMMddHHmmss") + currentDate.Millisecond.ToString() + fileExtension;
        string web_path = _webHostEnvironment.WebRootPath;
        string path = web_path + "/Images/" + saveName;
        var fs = System.IO.File.Create(path);
        formFile.CopyTo(fs);
        fs.Flush();
        fs.Close();
        return new JsonResult(new { isSuccess = true, returnMsg = saveName }); ;
    }


}

在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值