vue图片上传和读取

<template>
<div>
<el-upload class="avatar-uploader" :action="UploadUrl" :show-file-list="false" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload" > <img v-if="ruleForm.photo" :src="ruleForm.photo" class="avatar" /> <i v-else class="el-icon-plus avatar-uploader-icon"></i> </el-upload>
<div>
</template>
<script>
import {
  UpdateDoctorFile
} from "@/api/DoctorFile.js";
import { urls } from "@/api/DoctorFile.js";
import Axios from "axios";

export default {
  data() {
    return {
      // 查询医生档案对象数组
      UploadUrl: this.$setting.getApiUrl() + urls.UploadDoctorFile,
      ruleForm: {}
     
    };
  },
  methods: {
    handleAvatarSuccess(res, file) {
      if (res.code == 1) {
        this.ruleForm.photo = res.data[0];
      }
    },
    beforeAvatarUpload(file) {
      const isJPG = ["image/jpeg", "image/png", "image/gif"].includes(
        file.type
      );
      const isLt2M = file.size / 1024 / 1024 < 2;

      if (!isJPG) {
        this.$message.error("上传头像图片只能是 JPG/gif/png 格式!");
      }
      if (!isLt2M) {
        this.$message.error("上传头像图片大小不能超过 2MB!");
      }
      return isJPG && isLt2M;
    }
  }
};
</script>
/// <summary>
        /// 图片上传
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        [Route("UploadDoctorFile")]
        public async Task<IActionResult> UploadDoctorFile([FromForm]IFormCollection form)
        {     
            //获取图片
            var files = form.Files;
            long size = files.Sum(f => f.Length);
            var filePaths = new List<string>();
            var directory = Directory.GetCurrentDirectory();//获取应用程序的当前工作目录,作为当前文件目录并创建            
            var path = directory + @"\files";

            //文件目录如果不存在,就创建一个新目录
            if(!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            var http = $"{Request.Scheme}://{Request.Host}";
            path = path.Replace(directory, "");
            foreach (var file in files)
            {
                //获取文件名
                var filename = file.FileName;               
                var filePath = $@"{directory}{path}\{filename}";//存储url
                //文件流读文件 
                using (var stream = new FileStream(filePath, FileMode.Create))
                {
                    try { 
                        await file.CopyToAsync(stream);
                        //服务器更改
                        filePaths.Add($@"{http}{path}\{filename}".Replace(@"\","/"));
                    }
                    catch
                    { 
                        //本地拷贝失败
                        //Request.Body.CopyTo(stream);
                       // Debug.WriteLine(string.Format("写入文件出错:消息={0},堆栈={1}", ex.Message, ex.StackTrace));
                    }
                    
                }                
            }
            var result = new ResponseResult();
            try
            {
                result.Data = filePaths;
            }
            catch (Exception ex)
            {

                result.Message = ex.Message;
            }
            return result.ToJson();
        }

 

posted @ 2019-12-05 16:47  小小枝子  阅读(1348)  评论(0)    收藏  举报