ソースを参照

上传

临城职教中职
liangkun 2年前
コミット
6699375043
3個のファイルの変更133行の追加133行の削除
  1. +130
    -130
      Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/AnnexesApiWx.cs
  2. +1
    -1
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/components/learun-app/upload-file.vue
  3. +2
    -2
      Learun.Framework.Ultimate V7/LearunApp-2.2.0/config.js

+ 130
- 130
Learun.Framework.Ultimate V7/Learun.Application.WebApi/Modules/AnnexesApiWx.cs ファイルの表示

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

+ 1
- 1
Learun.Framework.Ultimate V7/LearunApp-2.2.0/components/learun-app/upload-file.vue ファイルの表示

@@ -89,7 +89,7 @@ export default {
// #endif

// #ifndef MP-DINGTALK
uni.chooseImage({
uni.chooseFile({
count: Number(this.number),
sizeType: ['original', 'compressed'],
sourceType: ['album', 'camera'],


+ 2
- 2
Learun.Framework.Ultimate V7/LearunApp-2.2.0/config.js ファイルの表示

@@ -21,8 +21,8 @@ export default {
// "http://192.168.2.98:8088/"
// ],
"apiHost": [
"http://localhost:31173/"
// "http://192.168.10.85:8088/"
// "http://localhost:31173/"
"http://192.168.10.68:8002/"
],
"webHost":"http://localhost:20472/",
// 开发环境下自动填充登录账号密码,与接口地址一一对应,只在开发环境下显示


読み込み中…
キャンセル
保存