mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2026-03-22 20:27:20 +08:00
【新增】图片的【裁剪上传】模式增加上传文件流大小验证机制。限制用户裁剪过大图片。
This commit is contained in:
@@ -447,6 +447,13 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
return jm;
|
||||
}
|
||||
|
||||
//检查上传大小
|
||||
if (!CommonHelper.CheckBase64Size(entity.base64, filesStorageOptions.MaxSize))
|
||||
{
|
||||
jm.msg = "上传文件大小超过限制,最大允许上传" + filesStorageOptions.MaxSize + "M";
|
||||
return jm;
|
||||
}
|
||||
|
||||
entity.base64 = entity.base64.Replace("data:image/png;base64,", "").Replace("data:image/jgp;base64,", "").Replace("data:image/jpg;base64,", "").Replace("data:image/jpeg;base64,", "");//将base64头部信息替换
|
||||
byte[] bytes = Convert.FromBase64String(entity.base64);
|
||||
MemoryStream memStream = new MemoryStream(bytes);
|
||||
@@ -1953,5 +1960,86 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region (微信小程序)新增临时素材====================================================
|
||||
|
||||
/// <summary>
|
||||
/// (微信小程序)新增临时素材
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpPost]
|
||||
public async Task<AdminUiCallBack> New_Temporary_Materials_UploadImg()
|
||||
{
|
||||
var jm = new AdminUiCallBack();
|
||||
|
||||
var filesStorageOptions = await _coreCmsSettingServices.GetFilesStorageOptions();
|
||||
//初始化上传参数
|
||||
var maxSize = 1024 * 1024 * filesStorageOptions.MaxSize; //上传大小5M
|
||||
|
||||
var file = Request.Form.Files["file"];
|
||||
if (file == null)
|
||||
{
|
||||
jm.msg = "请选择文件";
|
||||
return jm;
|
||||
}
|
||||
var fileName = file.FileName;
|
||||
var fileExt = Path.GetExtension(fileName).ToLowerInvariant();
|
||||
|
||||
//检查大小
|
||||
if (file.Length > maxSize)
|
||||
{
|
||||
jm.msg = "上传文件大小超过限制,最大允许上传" + filesStorageOptions.MaxSize + "M";
|
||||
return jm;
|
||||
}
|
||||
|
||||
//检查文件扩展名
|
||||
if (string.IsNullOrEmpty(fileExt) || Array.IndexOf(filesStorageOptions.FileTypes.Split(','), fileExt.Substring(1).ToLower()) == -1)
|
||||
{
|
||||
jm.msg = "上传文件扩展名是不允许的扩展名,请上传后缀名为:" + filesStorageOptions.FileTypes;
|
||||
return jm;
|
||||
}
|
||||
|
||||
byte[] bytes;
|
||||
await using (var ms = new MemoryStream())
|
||||
{
|
||||
await file.CopyToAsync(ms);
|
||||
bytes = ms.ToArray();
|
||||
}
|
||||
|
||||
var accessToken = WeChatCacheAccessTokenHelper.GetWxOpenAccessToken();
|
||||
var client = _weChatApiHttpClientFactory.CreateWxOpenClient();
|
||||
var request = new CgibinMediaUploadRequest
|
||||
{
|
||||
AccessToken = accessToken,
|
||||
FileBytes = bytes,
|
||||
FileContentType = file.ContentType,
|
||||
FileName = file.FileName,
|
||||
Type = "image"
|
||||
};
|
||||
|
||||
var response = await client.ExecuteCgibinMediaUploadAsync(request);
|
||||
if (response.IsSuccessful())
|
||||
{
|
||||
jm.code = 0;
|
||||
jm.msg = "上传成功!";
|
||||
jm.data = new
|
||||
{
|
||||
response.CreateTimestamp,
|
||||
response.MediaId,
|
||||
response.Type
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
jm.code = 1;
|
||||
jm.msg = response.ErrorMessage;
|
||||
}
|
||||
jm.otherData = response;
|
||||
|
||||
return jm;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user