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();
}

浙公网安备 33010602011771号