|
|
@@ -7,136 +7,136 @@ using System.IO; |
|
|
|
|
|
|
|
namespace Learun.Application.WebApi.Modules |
|
|
|
{ |
|
|
|
public class AnnexesApiWx : BaseApi |
|
|
|
{ |
|
|
|
public AnnexesApiWx() |
|
|
|
: base("/learun/adms/annexes") |
|
|
|
public class AnnexesApiWx : BaseApi |
|
|
|
{ |
|
|
|
Get["/wxlist"] = WxGetList; |
|
|
|
Get["/wxdown"] = WxDownload; |
|
|
|
Get["/wxfileinfo"] = WxFileInfo; |
|
|
|
Post["/wxupload"] = WxUpload; |
|
|
|
Post["/wxdelete"] = WxDeleteFile; |
|
|
|
public AnnexesApiWx() |
|
|
|
: base("/learun/adms/annexes") |
|
|
|
{ |
|
|
|
Get["/wxlist"] = WxGetList; |
|
|
|
Get["/wxdown"] = WxDownload; |
|
|
|
Get["/wxfileinfo"] = WxFileInfo; |
|
|
|
Post["/wxupload"] = WxUpload; |
|
|
|
Post["/wxdelete"] = WxDeleteFile; |
|
|
|
} |
|
|
|
private AnnexesFileIBLL annexesFileIBLL = new AnnexesFileBLL(); |
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// 获取附件列表 |
|
|
|
/// </summary> |
|
|
|
/// <param name="_"></param> |
|
|
|
/// <returns></returns> |
|
|
|
public Response WxGetList(dynamic _) |
|
|
|
{ |
|
|
|
var keyValue = this.GetReqData(); |
|
|
|
var list = annexesFileIBLL.GetList(keyValue); |
|
|
|
|
|
|
|
return Success(list); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// 上传附件图片文件 |
|
|
|
/// <summary> |
|
|
|
/// <returns></returns> |
|
|
|
public Response WxUpload(dynamic _) |
|
|
|
{ |
|
|
|
var files = (List<HttpFile>)this.Context.Request.Files; |
|
|
|
//var folderId = this.GetReqData(); |
|
|
|
string folderId = Guid.NewGuid().ToString(); |
|
|
|
string filePath = Config.GetValue("AnnexesFile"); |
|
|
|
string uploadDate = DateTime.Now.ToString("yyyyMMdd"); |
|
|
|
string fileEextension = Path.GetExtension(files[0].Name); |
|
|
|
string fileType = fileEextension.Replace(".", ""); |
|
|
|
string fileGuid = Guid.NewGuid().ToString(); |
|
|
|
|
|
|
|
string virtualPath = string.Format("{0}/{1}/{2}/{3}{4}", filePath, userInfo.userId, uploadDate, fileGuid, fileEextension); |
|
|
|
|
|
|
|
//创建文件夹 |
|
|
|
string path = Path.GetDirectoryName(virtualPath); |
|
|
|
Directory.CreateDirectory(path); |
|
|
|
AnnexesFileEntity fileAnnexesEntity = new AnnexesFileEntity(); |
|
|
|
if (!System.IO.File.Exists(virtualPath)) |
|
|
|
{ |
|
|
|
byte[] bytes = new byte[files[0].Value.Length]; |
|
|
|
files[0].Value.Read(bytes, 0, bytes.Length); |
|
|
|
FileInfo file = new FileInfo(virtualPath); |
|
|
|
FileStream fs = file.Create(); |
|
|
|
fs.Write(bytes, 0, bytes.Length); |
|
|
|
fs.Close(); |
|
|
|
|
|
|
|
//文件信息写入数据库 |
|
|
|
fileAnnexesEntity.F_Id = fileGuid; |
|
|
|
fileAnnexesEntity.F_FileName = files[0].Name; |
|
|
|
fileAnnexesEntity.F_FilePath = virtualPath; |
|
|
|
fileAnnexesEntity.F_FileSize = files[0].Value.Length.ToString(); |
|
|
|
fileAnnexesEntity.F_FileExtensions = fileEextension; |
|
|
|
fileAnnexesEntity.F_FileType = fileType; |
|
|
|
fileAnnexesEntity.F_CreateUserId = userInfo.userId; |
|
|
|
fileAnnexesEntity.F_CreateUserName = userInfo.realName; |
|
|
|
|
|
|
|
annexesFileIBLL.SaveEntity(folderId, fileAnnexesEntity); |
|
|
|
} |
|
|
|
|
|
|
|
return SuccessString(folderId); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// 获取文件信息 |
|
|
|
/// </summary> |
|
|
|
/// <param name="_"></param> |
|
|
|
/// <returns></returns> |
|
|
|
public Response WxFileInfo(dynamic _) |
|
|
|
{ |
|
|
|
var fileId = this.GetReqData(); |
|
|
|
var fileEntity = annexesFileIBLL.GetEntity(fileId); |
|
|
|
|
|
|
|
return Success(fileEntity); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// 删除文件 |
|
|
|
/// </summary> |
|
|
|
/// <param name="_"></param> |
|
|
|
/// <returns></returns> |
|
|
|
public Response WxDeleteFile(dynamic _) |
|
|
|
{ |
|
|
|
var fileId = this.GetReqData(); |
|
|
|
AnnexesFileEntity fileInfoEntity = annexesFileIBLL.GetEntity(fileId); |
|
|
|
annexesFileIBLL.DeleteEntity(fileId); |
|
|
|
//删除文件 |
|
|
|
if (System.IO.File.Exists(fileInfoEntity.F_FilePath)) |
|
|
|
{ |
|
|
|
System.IO.File.Delete(fileInfoEntity.F_FilePath); |
|
|
|
} |
|
|
|
|
|
|
|
return Success("删除成功"); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// 下载文件,微信小程序用 |
|
|
|
/// |
|
|
|
/// 微信小程序可以预览图片、文档 |
|
|
|
/// 支持的图片格式:.jpg .png .webp .gif |
|
|
|
/// 支持的文档格式:.doc(x) .xls(x) .ppt(x) .pdf |
|
|
|
/// |
|
|
|
/// 对于其他格式的文件,微信小程序官方未提供打开或预览的 API,文件对用户来说不可访问 |
|
|
|
/// </summary> |
|
|
|
/// <param name="_"></param> |
|
|
|
/// <returns></returns> |
|
|
|
public Response WxDownload(dynamic _) |
|
|
|
{ |
|
|
|
string name = this.GetReqData(); |
|
|
|
string fileId = name.Split('.')[0]; |
|
|
|
var fileEntity = annexesFileIBLL.GetEntity(fileId); |
|
|
|
string filepath = fileEntity.F_FilePath; |
|
|
|
|
|
|
|
if (!FileDownHelper.FileExists(filepath)) |
|
|
|
{ |
|
|
|
return 404; |
|
|
|
} |
|
|
|
|
|
|
|
FileDownHelper.DownLoadWx(filepath, fileEntity.F_FileType); |
|
|
|
|
|
|
|
return Success(""); |
|
|
|
} |
|
|
|
} |
|
|
|
private AnnexesFileIBLL annexesFileIBLL = new AnnexesFileBLL(); |
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// 获取附件列表 |
|
|
|
/// </summary> |
|
|
|
/// <param name="_"></param> |
|
|
|
/// <returns></returns> |
|
|
|
public Response WxGetList(dynamic _) |
|
|
|
{ |
|
|
|
var keyValue = this.GetReqData(); |
|
|
|
var list = annexesFileIBLL.GetList(keyValue); |
|
|
|
|
|
|
|
return Success(list); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// 上传附件图片文件 |
|
|
|
/// <summary> |
|
|
|
/// <returns></returns> |
|
|
|
public Response WxUpload(dynamic _) |
|
|
|
{ |
|
|
|
var files = (List<HttpFile>)this.Context.Request.Files; |
|
|
|
var folderId = this.GetReqData(); |
|
|
|
|
|
|
|
string filePath = Config.GetValue("AnnexesFile"); |
|
|
|
string uploadDate = DateTime.Now.ToString("yyyyMMdd"); |
|
|
|
string fileEextension = Path.GetExtension(files[0].Name); |
|
|
|
string fileType = fileEextension.Replace(".", ""); |
|
|
|
string fileGuid = Guid.NewGuid().ToString(); |
|
|
|
|
|
|
|
string virtualPath = string.Format("{0}/{1}/{2}/{3}{4}", filePath, userInfo.userId, uploadDate, fileGuid, fileEextension); |
|
|
|
|
|
|
|
//创建文件夹 |
|
|
|
string path = Path.GetDirectoryName(virtualPath); |
|
|
|
Directory.CreateDirectory(path); |
|
|
|
AnnexesFileEntity fileAnnexesEntity = new AnnexesFileEntity(); |
|
|
|
if (!System.IO.File.Exists(virtualPath)) |
|
|
|
{ |
|
|
|
byte[] bytes = new byte[files[0].Value.Length]; |
|
|
|
files[0].Value.Read(bytes, 0, bytes.Length); |
|
|
|
FileInfo file = new FileInfo(virtualPath); |
|
|
|
FileStream fs = file.Create(); |
|
|
|
fs.Write(bytes, 0, bytes.Length); |
|
|
|
fs.Close(); |
|
|
|
|
|
|
|
//文件信息写入数据库 |
|
|
|
fileAnnexesEntity.F_Id = fileGuid; |
|
|
|
fileAnnexesEntity.F_FileName = files[0].Name; |
|
|
|
fileAnnexesEntity.F_FilePath = virtualPath; |
|
|
|
fileAnnexesEntity.F_FileSize = files[0].Value.Length.ToString(); |
|
|
|
fileAnnexesEntity.F_FileExtensions = fileEextension; |
|
|
|
fileAnnexesEntity.F_FileType = fileType; |
|
|
|
fileAnnexesEntity.F_CreateUserId = userInfo.userId; |
|
|
|
fileAnnexesEntity.F_CreateUserName = userInfo.realName; |
|
|
|
|
|
|
|
annexesFileIBLL.SaveEntity(folderId, fileAnnexesEntity); |
|
|
|
} |
|
|
|
|
|
|
|
return SuccessString(fileGuid); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// 获取文件信息 |
|
|
|
/// </summary> |
|
|
|
/// <param name="_"></param> |
|
|
|
/// <returns></returns> |
|
|
|
public Response WxFileInfo(dynamic _) |
|
|
|
{ |
|
|
|
var fileId = this.GetReqData(); |
|
|
|
var fileEntity = annexesFileIBLL.GetEntity(fileId); |
|
|
|
|
|
|
|
return Success(fileEntity); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// 删除文件 |
|
|
|
/// </summary> |
|
|
|
/// <param name="_"></param> |
|
|
|
/// <returns></returns> |
|
|
|
public Response WxDeleteFile(dynamic _) |
|
|
|
{ |
|
|
|
var fileId = this.GetReqData(); |
|
|
|
AnnexesFileEntity fileInfoEntity = annexesFileIBLL.GetEntity(fileId); |
|
|
|
annexesFileIBLL.DeleteEntity(fileId); |
|
|
|
//删除文件 |
|
|
|
if (System.IO.File.Exists(fileInfoEntity.F_FilePath)) |
|
|
|
{ |
|
|
|
System.IO.File.Delete(fileInfoEntity.F_FilePath); |
|
|
|
} |
|
|
|
|
|
|
|
return Success("删除成功"); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// 下载文件,微信小程序用 |
|
|
|
/// |
|
|
|
/// 微信小程序可以预览图片、文档 |
|
|
|
/// 支持的图片格式:.jpg .png .webp .gif |
|
|
|
/// 支持的文档格式:.doc(x) .xls(x) .ppt(x) .pdf |
|
|
|
/// |
|
|
|
/// 对于其他格式的文件,微信小程序官方未提供打开或预览的 API,文件对用户来说不可访问 |
|
|
|
/// </summary> |
|
|
|
/// <param name="_"></param> |
|
|
|
/// <returns></returns> |
|
|
|
public Response WxDownload(dynamic _) |
|
|
|
{ |
|
|
|
string name = this.GetReqData(); |
|
|
|
string fileId = name.Split('.')[0]; |
|
|
|
var fileEntity = annexesFileIBLL.GetEntity(fileId); |
|
|
|
string filepath = fileEntity.F_FilePath; |
|
|
|
|
|
|
|
if (!FileDownHelper.FileExists(filepath)) |
|
|
|
{ |
|
|
|
return 404; |
|
|
|
} |
|
|
|
|
|
|
|
FileDownHelper.DownLoadWx(filepath, fileEntity.F_FileType); |
|
|
|
|
|
|
|
return Success(""); |
|
|
|
} |
|
|
|
} |
|
|
|
} |