文件上传存储到阿里云新增自定义文件名

This commit is contained in:
不做码农 2022-01-14 20:27:23 +08:00
parent b8e4cd2421
commit 4fefb4282d
7 changed files with 26 additions and 17 deletions

View File

@ -175,7 +175,7 @@ namespace ZR.Admin.WebApi.Controllers
return ToResponse(ResultCode.CUSTOM_ERROR, "上传文件过大,不能超过 " + (MaxContentLength / 1024).ToString() + " MB"); return ToResponse(ResultCode.CUSTOM_ERROR, "上传文件过大,不能超过 " + (MaxContentLength / 1024).ToString() + " MB");
} }
(bool, string, string) result = SysFileService.SaveFile(fileDir, formFile); (bool, string, string) result = SysFileService.SaveFile(fileDir, formFile, fileName);
long fileId = SysFileService.InsertFile(new SysFile() long fileId = SysFileService.InsertFile(new SysFile()
{ {
AccessUrl = result.Item2, AccessUrl = result.Item2,

View File

@ -43,6 +43,7 @@ namespace ZR.Admin.WebApi.Controllers
predicate = predicate.AndIF(parm.BeginCreate_time != null, it => it.Create_time >= parm.BeginCreate_time); predicate = predicate.AndIF(parm.BeginCreate_time != null, it => it.Create_time >= parm.BeginCreate_time);
predicate = predicate.AndIF(parm.EndCreate_time != null, it => it.Create_time <= parm.EndCreate_time); predicate = predicate.AndIF(parm.EndCreate_time != null, it => it.Create_time <= parm.EndCreate_time);
predicate = predicate.AndIF(parm.StoreType != null, m => m.StoreType == parm.StoreType); predicate = predicate.AndIF(parm.StoreType != null, m => m.StoreType == parm.StoreType);
predicate = predicate.AndIF(parm.FileId != null, m => m.Id == parm.FileId);
//搜索条件查询语法参考Sqlsugar //搜索条件查询语法参考Sqlsugar
var response = _SysFileService.GetPages(predicate.ToExpression(), parm); var response = _SysFileService.GetPages(predicate.ToExpression(), parm);

View File

@ -25,5 +25,6 @@ namespace ZR.Model.System.Dto
public DateTime? BeginCreate_time { get; set; } public DateTime? BeginCreate_time { get; set; }
public DateTime? EndCreate_time { get; set; } public DateTime? EndCreate_time { get; set; }
public int? StoreType { get; set; } public int? StoreType { get; set; }
public int? FileId { get; set; }
} }
} }

View File

@ -16,7 +16,7 @@ namespace ZR.Service.System.IService
/// <param name="formFile"></param> /// <param name="formFile"></param>
/// <returns>结果、地址、文件名</returns> /// <returns>结果、地址、文件名</returns>
(bool, string, string) SaveFile(string picdir, IFormFile formFile); (bool, string, string) SaveFile(string picdir, IFormFile formFile);
(bool, string, string) SaveFile(string picdir, IFormFile formFile, string customFileName);
/// <summary> /// <summary>
/// 按时间来创建文件夹 /// 按时间来创建文件夹
/// </summary> /// </summary>

View File

@ -10,6 +10,7 @@ using System.Security.Cryptography;
using System.Net; using System.Net;
using ZR.Model.System; using ZR.Model.System;
using ZR.Repository.System; using ZR.Repository.System;
using Infrastructure.Extensions;
namespace ZR.Service.System namespace ZR.Service.System
{ {
@ -35,9 +36,13 @@ namespace ZR.Service.System
/// <returns></returns> /// <returns></returns>
public (bool, string, string) SaveFile(string picdir, IFormFile formFile) public (bool, string, string) SaveFile(string picdir, IFormFile formFile)
{ {
// eg: idcard/2020/08/18 return SaveFile(picdir, formFile, "");
}
public (bool, string, string) SaveFile(string picdir, IFormFile formFile, string customFileName)
{
// eg: uploads/2020/08/18
string dir = GetdirPath(picdir.ToString()); string dir = GetdirPath(picdir.ToString());
string tempName = HashFileName(); string tempName = customFileName.IsEmpty() ? HashFileName() : customFileName;
string fileExt = Path.GetExtension(formFile.FileName); string fileExt = Path.GetExtension(formFile.FileName);
string fileName = $"{tempName}{fileExt}"; string fileName = $"{tempName}{fileExt}";
string webUrl = $"{domainUrl}/{dir}/{fileName}"; string webUrl = $"{domainUrl}/{dir}/{fileName}";
@ -46,7 +51,6 @@ namespace ZR.Service.System
return (statusCode == HttpStatusCode.OK, webUrl, fileName); return (statusCode == HttpStatusCode.OK, webUrl, fileName);
} }
public string GetdirPath(string path = "") public string GetdirPath(string path = "")
{ {
DateTime date = DateTime.Now; DateTime date = DateTime.Now;

View File

@ -162,7 +162,7 @@ export default {
} }
this.msgSuccess("上传成功"); this.msgSuccess("上传成功");
this.fileList.push({ name: res.data.fileName, url: res.data.url, path: res.data.path }); this.fileList.push({ name: res.data.fileName, url: res.data.url, path: res.data.path });
this.$emit("input", this.column, this.listToString(this.fileList)); this.$emit("input", this.column, this.listToString(this.fileList), res.data);
}, },
// //
uploadProcess(event, file, fileList) { uploadProcess(event, file, fileList) {

View File

@ -2,6 +2,9 @@
<div class="app-container"> <div class="app-container">
<!-- :model属性用于表单验证使用 比如下面的el-form-item prop属性用于对表单值进行验证操作 --> <!-- :model属性用于表单验证使用 比如下面的el-form-item prop属性用于对表单值进行验证操作 -->
<el-form :model="queryParams" label-position="left" inline ref="queryForm" :label-width="labelWidth" v-show="showSearch" @submit.native.prevent> <el-form :model="queryParams" label-position="left" inline ref="queryForm" :label-width="labelWidth" v-show="showSearch" @submit.native.prevent>
<el-form-item label="文件id" prop="fileId">
<el-input v-model="queryParams.fileId" placeholder="请输入文件id" clearable size="small" />
</el-form-item>
<el-form-item label="上传时间"> <el-form-item label="上传时间">
<el-date-picker v-model="dateRangeCreate_time" size="small" value-format="yyyy-MM-dd" type="daterange" range-separator="-" <el-date-picker v-model="dateRangeCreate_time" size="small" value-format="yyyy-MM-dd" type="daterange" range-separator="-"
start-placeholder="开始日期" end-placeholder="结束日期" placeholder="请选择上传时间"></el-date-picker> start-placeholder="开始日期" end-placeholder="结束日期" placeholder="请选择上传时间"></el-date-picker>
@ -11,11 +14,10 @@
<el-option v-for="item in storeTypeOptions" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"></el-option> <el-option v-for="item in storeTypeOptions" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item>
<el-row class="mb8" style="text-align:center">
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-row> </el-form-item>
</el-form> </el-form>
<!-- 工具区域 --> <!-- 工具区域 -->
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
@ -168,6 +170,7 @@ export default {
pageNum: 1, pageNum: 1,
pageSize: 20, pageSize: 20,
storeType: 1, storeType: 1,
fileId: undefined,
}, },
// //
title: "", title: "",
@ -257,12 +260,12 @@ export default {
reset() { reset() {
this.form = { this.form = {
fileName: "", fileName: "",
fileUrl: undefined, fileUrl: "",
storePath: "uploads", storePath: "uploads",
fileSize: undefined, fileSize: 0,
fileExt: undefined, fileExt: "",
storeType: 1, storeType: 1,
accessUrl: undefined, accessUrl: "",
}; };
this.resetForm("form"); this.resetForm("form");
}, },
@ -317,9 +320,9 @@ export default {
}); });
}, },
// //
handleUploadSuccess(columnName, filelist) { handleUploadSuccess(columnName, filelist, data) {
this.form[columnName] = filelist; this.form[columnName] = filelist;
this.queryParams.fileId = data.fileId;
this.open = false; this.open = false;
this.getList(); this.getList();
}, },