commit
88df3c9b2d
|
@ -34,20 +34,6 @@
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
|
||||||
<div class="card-box">
|
|
||||||
<h4 class="m-t-0 header-title">Download Settings</h4>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
Want to save or share your settings?<br />Download them!
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<a class="btn btn-ptmagic text-uppercase waves-effect waves-light" href="@Html.Raw(Model.PTMagicConfiguration.GeneralSettings.Monitor.RootUrl)_get/DownloadFile?f=settings.analyzer.json">
|
|
||||||
Download Settings
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
@page
|
|
||||||
@model DownloadFileModel
|
|
||||||
@{
|
|
||||||
Layout = null;
|
|
||||||
}
|
|
|
@ -1,47 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.Collections;
|
|
||||||
using System.IO;
|
|
||||||
using Microsoft.Net.Http.Headers;
|
|
||||||
using Core.Helper;
|
|
||||||
|
|
||||||
namespace Monitor.Pages {
|
|
||||||
public class DownloadFileModel : _Internal.BasePageModelSecure {
|
|
||||||
|
|
||||||
public void OnGet() {
|
|
||||||
// Initialize Config
|
|
||||||
base.Init();
|
|
||||||
|
|
||||||
// Check we have a log in
|
|
||||||
if (base.IsLoggedIn(this.HttpContext))
|
|
||||||
{
|
|
||||||
InitializeDownload();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private async void InitializeDownload() {
|
|
||||||
// Zip the file in an non web accessible folder
|
|
||||||
string fileName = GetStringParameter("f", "");
|
|
||||||
string tempFolder = PTMagicMonitorBasePath + System.IO.Path.DirectorySeparatorChar + "tmp" + System.IO.Path.DirectorySeparatorChar;
|
|
||||||
|
|
||||||
if (System.IO.File.Exists(PTMagicBasePath + fileName)) {
|
|
||||||
if (!System.IO.Directory.Exists(tempFolder)) {
|
|
||||||
System.IO.Directory.CreateDirectory(tempFolder);
|
|
||||||
}
|
|
||||||
|
|
||||||
string sourcefilePath = PTMagicBasePath + fileName;
|
|
||||||
string destinationFilePath = tempFolder + fileName + ".zip";
|
|
||||||
|
|
||||||
ZIPHelper.CreateZipFile(new ArrayList() { sourcefilePath }, destinationFilePath);
|
|
||||||
|
|
||||||
// Write out the file
|
|
||||||
var data = System.IO.File.ReadAllBytes(destinationFilePath);
|
|
||||||
|
|
||||||
Response.ContentType = "application/zip";
|
|
||||||
Response.Headers[HeaderNames.CacheControl] = "no-cache";
|
|
||||||
Response.Headers[HeaderNames.ContentDisposition] = String.Format("attachment; filename={0}", fileName);
|
|
||||||
await Response.BodyWriter.WriteAsync(new Memory<byte>(data));
|
|
||||||
Response.BodyWriter.Complete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -6,7 +6,7 @@ using Core.Helper;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
|
|
||||||
|
|
||||||
[assembly: AssemblyVersion("2.5.5")]
|
[assembly: AssemblyVersion("2.5.6")]
|
||||||
[assembly: AssemblyProduct("PT Magic")]
|
[assembly: AssemblyProduct("PT Magic")]
|
||||||
|
|
||||||
namespace PTMagic
|
namespace PTMagic
|
||||||
|
|
Loading…
Reference in New Issue