summaryrefslogtreecommitdiff
path: root/Project-Unite/Controllers/SkinsController.cs
diff options
context:
space:
mode:
authorMichael <[email protected]>2017-04-26 19:15:08 -0400
committerMichael <[email protected]>2017-04-26 19:15:08 -0400
commit10cb3a6bfe2eb782f1dc92cc6b27d30c631ac558 (patch)
treef9a32ca8315c53b3fe962201d61cfd6d0ccfed84 /Project-Unite/Controllers/SkinsController.cs
parent9400cf0392be528a50a831ae4e670c8bcb3ab127 (diff)
downloadproject-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.cs33
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));