diff options
| author | Michael <[email protected]> | 2017-04-26 19:15:08 -0400 |
|---|---|---|
| committer | Michael <[email protected]> | 2017-04-26 19:15:08 -0400 |
| commit | 10cb3a6bfe2eb782f1dc92cc6b27d30c631ac558 (patch) | |
| tree | f9a32ca8315c53b3fe962201d61cfd6d0ccfed84 /Project-Unite/Controllers/SkinsController.cs | |
| parent | 9400cf0392be528a50a831ae4e670c8bcb3ab127 (diff) | |
| download | project-unite-10cb3a6bfe2eb782f1dc92cc6b27d30c631ac558.tar.gz project-unite-10cb3a6bfe2eb782f1dc92cc6b27d30c631ac558.tar.bz2 project-unite-10cb3a6bfe2eb782f1dc92cc6b27d30c631ac558.zip | |
fix skin uploads.
Diffstat (limited to 'Project-Unite/Controllers/SkinsController.cs')
| -rw-r--r-- | Project-Unite/Controllers/SkinsController.cs | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/Project-Unite/Controllers/SkinsController.cs b/Project-Unite/Controllers/SkinsController.cs index d503100..3f8da3c 100644 --- a/Project-Unite/Controllers/SkinsController.cs +++ b/Project-Unite/Controllers/SkinsController.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.IO.Compression; using System.Linq; using System.Web; using System.Web.Mvc; @@ -69,10 +70,36 @@ namespace Project_Unite.Controllers Directory.CreateDirectory(Server.MapPath(screenshotFolder)); - skin.DownloadUrl = repoFolder.Remove(0,1) + "/" + model.SkinFile.FileName; - model.SkinFile.SaveAs(Path.Combine(Server.MapPath(repoFolder), model.SkinFile.FileName)); + int len = model.SkinFile.FileName.Length; - if (model.ScreenshotFile != null && model.ScreenshotFile.ContentLength > 0) + int index = model.SkinFile.FileName.LastIndexOf("."); + int end = len - index; + skin.DownloadUrl = repoFolder.Remove(0,1) + "/" + model.SkinFile.FileName.Remove(index,end) + ".zip"; + + + + string work_dir = Server.MapPath("~/unite_work_" + Guid.NewGuid().ToString()); + + if (model.SkinFile.FileName.ToLower().EndsWith(".zip")) + { + work_dir = Server.MapPath(repoFolder); + } + else + { + + if (Directory.Exists(work_dir)) + Directory.Delete(work_dir, true); + + Directory.CreateDirectory(work_dir); + } + model.SkinFile.SaveAs(Path.Combine(work_dir, model.SkinFile.FileName)); + if (!model.SkinFile.FileName.ToLower().EndsWith(".zip")) + { + ZipFile.CreateFromDirectory(work_dir, Server.MapPath("~" + skin.DownloadUrl)); + Directory.Delete(work_dir, true); + } + + if (model.ScreenshotFile != null && model.ScreenshotFile.ContentLength > 0) { skin.ScreenshotUrl = screenshotFolder.Remove(0, 1) + "/" + model.ScreenshotFile.FileName; model.ScreenshotFile.SaveAs(Path.Combine(Server.MapPath(screenshotFolder), model.ScreenshotFile.FileName)); |
