增加功能:个人中心头像增加删除确认操作,以及删除自定义头像恢复默认头像功能
This commit is contained in:
parent
b677927047
commit
46684f3b82
|
@ -21,12 +21,13 @@ namespace Bootstrap.Admin.Controllers.Api
|
||||||
long fileSize = 0;
|
long fileSize = 0;
|
||||||
var userName = User.Identity.Name;
|
var userName = User.Identity.Name;
|
||||||
var error = string.Empty;
|
var error = string.Empty;
|
||||||
|
var fileName = string.Empty;
|
||||||
if (User.IsInRole("Administrators")) userName = "default";
|
if (User.IsInRole("Administrators")) userName = "default";
|
||||||
if (files.Count > 0)
|
if (files.Files.Count > 0)
|
||||||
{
|
{
|
||||||
var uploadFile = files.Files[0];
|
var uploadFile = files.Files[0];
|
||||||
var webSiteUrl = DictHelper.RetrieveIconFolderPath().Code;
|
var webSiteUrl = DictHelper.RetrieveIconFolderPath().Code;
|
||||||
var fileName = string.Format("{0}{1}", userName, Path.GetExtension(uploadFile.FileName));
|
fileName = string.Format("{0}{1}", userName, Path.GetExtension(uploadFile.FileName));
|
||||||
var fileUrl = string.Format("{0}{1}", webSiteUrl, fileName);
|
var fileUrl = string.Format("{0}{1}", webSiteUrl, fileName);
|
||||||
var filePath = Path.Combine(env.WebRootPath, webSiteUrl.Replace("~", string.Empty).Replace("/", "\\").TrimStart('\\') + fileName);
|
var filePath = Path.Combine(env.WebRootPath, webSiteUrl.Replace("~", string.Empty).Replace("/", "\\").TrimStart('\\') + fileName);
|
||||||
var fileFolder = Path.GetDirectoryName(filePath);
|
var fileFolder = Path.GetDirectoryName(filePath);
|
||||||
|
@ -39,12 +40,31 @@ namespace Bootstrap.Admin.Controllers.Api
|
||||||
previewUrl = string.Format("{0}?q={1}", Url.Content(fileUrl), DateTime.Now.Ticks);
|
previewUrl = string.Format("{0}?q={1}", Url.Content(fileUrl), DateTime.Now.Ticks);
|
||||||
UserHelper.SaveUserIconByName(userName, fileName);
|
UserHelper.SaveUserIconByName(userName, fileName);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// delete file
|
||||||
|
fileName = files["key"];
|
||||||
|
if (!fileName.Equals("default.jpg"))
|
||||||
|
{
|
||||||
|
fileName = Path.Combine(env.WebRootPath, $"images\\uploader\\{fileName}");
|
||||||
|
try
|
||||||
|
{
|
||||||
|
System.IO.File.Delete(fileName);
|
||||||
|
fileName = "default.jpg";
|
||||||
|
UserHelper.SaveUserIconByName(userName, fileName);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
error = ex.Message;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return new JsonResult(new
|
return new JsonResult(new
|
||||||
{
|
{
|
||||||
error = string.IsNullOrEmpty(error) ? error : $"服务器端错误-{error}",
|
error = string.IsNullOrEmpty(error) ? error : $"服务器端错误-{error}",
|
||||||
initialPreview = new string[] { previewUrl },
|
initialPreview = new string[] { previewUrl },
|
||||||
initialPreviewConfig = new object[] {
|
initialPreviewConfig = new object[] {
|
||||||
new { caption= "新头像", size= fileSize, showZoom= true }
|
new { caption = "新头像", size = fileSize, showZoom = true, key = fileName }
|
||||||
},
|
},
|
||||||
append = false
|
append = false
|
||||||
});
|
});
|
||||||
|
|
|
@ -16,6 +16,10 @@ namespace Bootstrap.Admin.Models
|
||||||
/// <summary>
|
/// <summary>
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
public string FileName { get; }
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
/// <param name="controller"></param>
|
/// <param name="controller"></param>
|
||||||
public ProfilesModel(ControllerBase controller) : base(controller)
|
public ProfilesModel(ControllerBase controller) : base(controller)
|
||||||
{
|
{
|
||||||
|
@ -25,6 +29,7 @@ namespace Bootstrap.Admin.Models
|
||||||
if (File.Exists(fileName))
|
if (File.Exists(fileName))
|
||||||
{
|
{
|
||||||
Size = new FileInfo(fileName).Length;
|
Size = new FileInfo(fileName).Length;
|
||||||
|
FileName = Path.GetFileName(fileName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,7 +99,7 @@
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<form enctype="multipart/form-data" class="d-none" data-admin="@User.IsInRole("Administrators")">
|
<form enctype="multipart/form-data" class="d-none" data-admin="@User.IsInRole("Administrators")">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<input id="fileIcon" class="file" type="file" data-init="@Model.Size">
|
<input id="fileIcon" class="file" type="file" data-init="@Model.Size" data-file="@Model.FileName">
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<img class="card-img d-none" src="@Url.Content(Model.Icon)" />
|
<img class="card-img d-none" src="@Url.Content(Model.Icon)" />
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
$(function () {
|
$(function () {
|
||||||
var $headerIcon = $('#headerIcon');
|
var $headerIcon = $('#headerIcon');
|
||||||
var preIcon = $headerIcon.attr('src');
|
var preIcon = $headerIcon.attr('src');
|
||||||
$('#fileIcon').fileinput({
|
var $file = $('#fileIcon');
|
||||||
|
var defFileName = $file.attr('data-file');
|
||||||
|
$file.fileinput({
|
||||||
uploadUrl: $.formatUrl(Profiles.url),
|
uploadUrl: $.formatUrl(Profiles.url),
|
||||||
|
deleteUrl: $.formatUrl(Profiles.url),
|
||||||
browseOnZoneClick: true,
|
browseOnZoneClick: true,
|
||||||
theme: 'fa',
|
theme: 'fa',
|
||||||
language: 'zh',
|
language: 'zh',
|
||||||
|
@ -12,7 +15,7 @@
|
||||||
preIcon
|
preIcon
|
||||||
],
|
],
|
||||||
initialPreviewConfig: [
|
initialPreviewConfig: [
|
||||||
{ caption: "现在头像", size: $('#fileIcon').attr('data-init'), showZoom: true }
|
{ caption: "现在头像", size: $file.attr('data-init'), showZoom: true, showRemove: defFileName !== 'default.jpg', key: defFileName }
|
||||||
],
|
],
|
||||||
initialPreviewAsData: true,
|
initialPreviewAsData: true,
|
||||||
overwriteInitial: true,
|
overwriteInitial: true,
|
||||||
|
@ -20,8 +23,44 @@
|
||||||
}).on('fileuploaded', function (event, data, previewId, index) {
|
}).on('fileuploaded', function (event, data, previewId, index) {
|
||||||
var url = data.response.initialPreview[0];
|
var url = data.response.initialPreview[0];
|
||||||
if (!!url === true) $headerIcon.attr('src', url);
|
if (!!url === true) $headerIcon.attr('src', url);
|
||||||
|
}).on('filebeforedelete', function (e, file) {
|
||||||
|
if (file === "default.jpg") {
|
||||||
|
swal({ showConfirmButton: false, showCancelButton: false, timer: 1500, title: '默认头像不能删除', type: "info" });
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return new Promise(function (resolve, reject) {
|
||||||
|
swal({
|
||||||
|
title: "您确定要删除吗?",
|
||||||
|
type: "warning",
|
||||||
|
showCancelButton: true,
|
||||||
|
closeOnConfirm: true,
|
||||||
|
confirmButtonText: "是的,我要删除",
|
||||||
|
confirmButtonColor: "#d9534f",
|
||||||
|
cancelButtonText: "取消"
|
||||||
|
}, function (del) {
|
||||||
|
resolve(!del);
|
||||||
|
if (del) $file.fileinput('default');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}).on('filedeleted', function (event, key, jqXHR, data) {
|
||||||
|
$headerIcon.attr('src', $.formatUrl('images/uploader/default.jpg'));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$.fn.fileinput.Constructor.prototype.default = function () {
|
||||||
|
$.extend(this, {
|
||||||
|
initialPreview: [
|
||||||
|
$.formatUrl('images/uploader/default.jpg')
|
||||||
|
],
|
||||||
|
initialPreviewConfig: [
|
||||||
|
{ caption: "现在头像", size: 7195, showZoom: true, showRemove: false, key: 'default.jpg' }
|
||||||
|
]
|
||||||
|
});
|
||||||
|
this._initPreviewCache();
|
||||||
|
this._initPreview(true);
|
||||||
|
this._initPreviewActions();
|
||||||
|
this._initZoom();
|
||||||
|
};
|
||||||
|
|
||||||
$('.site-footer').footer();
|
$('.site-footer').footer();
|
||||||
|
|
||||||
var dataBinder = new DataEntity({
|
var dataBinder = new DataEntity({
|
||||||
|
|
Loading…
Reference in New Issue