using Learun.Application.Base.SystemModule;
using Learun.Util;
using Nancy;
using System;
using System.Collections.Generic;
using System.IO;
namespace Learun.Application.WebApi.Modules
{
public class AnnexesApi : BaseApi
{
public AnnexesApi()
: base("/learun/adms/annexes")
{
Get["/list"] = GetList;
Get["/down"] = DownAnnexesFile;
Post["/upload"] = Upload;
Post["/delete"] = DeleteFile;
}
private AnnexesFileIBLL annexesFileIBLL = new AnnexesFileBLL();
///
/// 获取附件列表
///
///
///
public Response GetList(dynamic _)
{
var keyValue = this.GetReqData();
var list = annexesFileIBLL.GetList(keyValue);
return Success(list);
}
///
/// 上传附件图片文件
///
///
public Response Upload(dynamic _)
{
var files = (List)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 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 = FileEextension.Replace(".", "");
fileAnnexesEntity.F_CreateUserId = userInfo.userId;
fileAnnexesEntity.F_CreateUserName = userInfo.realName;
annexesFileIBLL.SaveEntity(folderId, fileAnnexesEntity);
}
return SuccessString(fileGuid);
}
///
/// 删除文件
///
///
///
public Response DeleteFile(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("删除成功");
}
///
/// 下载文件
///
///
///
public Response DownAnnexesFile(dynamic _) {
string name = this.GetReqData();
string fileId = name.Split('.')[0];
var data = annexesFileIBLL.GetEntity(fileId);
string filepath = data.F_FilePath;
if (FileDownHelper.FileExists(filepath))
{
FileDownHelper.DownLoadnew(filepath);
}
return Success("");
}
}
}