]> insang Git - ZipProject.git/commitdiff
압축하기 progress 조금 더 상세하게 (파일마다 몇퍼센트씩했는지도 추가)
authorjoinsang <dhkq92@icloud.com>
Thu, 28 Mar 2019 06:41:52 +0000 (15:41 +0900)
committerjoinsang <dhkq92@icloud.com>
Thu, 28 Mar 2019 06:41:52 +0000 (15:41 +0900)
ZipProject/Controllers/WebZipController.cs
ZipProject/Models/ZipModel.cs
ZipProject/_publish/ZipProject.dll
ZipProject/_publish/ZipProject.pdb
ZipProject/_publish/wwwroot/js/Zip/partial_zip.js
ZipProject/wwwroot/js/Zip/partial_zip.js

index 0a4aee54f42ee36985fff26c88ae99c7198a9452..1d07e8efd7fef6cd4dab3315cb59627b7f33a8fd 100644 (file)
@@ -73,6 +73,13 @@ namespace ZipProject.Controllers {
       return File (file, "application/zip");
     }
 
+    public ActionResult tst () {
+      double now = 1;
+      double per = 1;
+      now = now + (int) 1;
+      return Json (per == (int) 1);
+    }
+
     public ActionResult Error () {
       return View (new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
     }
index 76f11d940e4ca2e8bdefd8650bff8c11c3dea827..5b58381987203916044ff2080f62dee074479e00 100644 (file)
@@ -20,7 +20,8 @@ namespace ZipProject {
     private JObject keypair;
     private string[] dirList;
     private List<IFormFile> files;
-    private int now;
+    double nows;
+    double per;
     private string zipname;
     public ZipModel () { }
 
@@ -62,13 +63,14 @@ namespace ZipProject {
     }
 
     public void SaveProgress (object sender, SaveProgressEventArgs e) {
-      if (e.EventType == ZipProgressEventType.Saving_BeforeWriteEntry) {
-        if (now != e.EntriesSaved + 1) {
-          now = e.EntriesSaved + 1;
-          SimpleLongPolling.Publish (uuid, (e.EntriesSaved + 1) + "");
-        }
-      } else if (e.EventType == ZipProgressEventType.Saving_Completed) {
+      if (e.EventType == ZipProgressEventType.Saving_Completed) { //완료시
         SimpleLongPolling.Publish (uuid, "-1");
+      } else if (e.EventType == ZipProgressEventType.Saving_EntryBytesRead) { //진행률
+        if (per != (double) (e.BytesTransferred * 100 / e.TotalBytesToTransfer) / (double) 100) {
+          per = (double) (e.BytesTransferred * 100 / e.TotalBytesToTransfer) / (double) 100;
+          nows = Math.Truncate (nows) + per;
+          SimpleLongPolling.Publish (uuid, nows + "");
+        }
       }
     }
 
index 29ed26c183a078f5ee6ae01fea79a661ff4f96ec..778b88f0036d290dee03cda886f0adc1ec306cc0 100644 (file)
Binary files a/ZipProject/_publish/ZipProject.dll and b/ZipProject/_publish/ZipProject.dll differ
index 0e2a1c860c126909f5758dc541906a780075d6fb..3e1529a6c9bea10c628ffb37ceb88159da7223a2 100644 (file)
Binary files a/ZipProject/_publish/ZipProject.pdb and b/ZipProject/_publish/ZipProject.pdb differ
index b5be10a2876c536605edb362e93db4c8f6b5a146..3b3813a1010fcf17c00cf7aa83d5323d83c863f7 100644 (file)
@@ -296,6 +296,7 @@ function RequestCompress() {
   if (filesSize > maxFileSize / 2) {
     size = (filesSize / 1024 / 1024 / 1024).toFixed(1) + "GB";
   }
+  size = 100;
   var format = "zip";
 
   if (filesSize > maxFileSize) {
index b5be10a2876c536605edb362e93db4c8f6b5a146..3b3813a1010fcf17c00cf7aa83d5323d83c863f7 100644 (file)
@@ -296,6 +296,7 @@ function RequestCompress() {
   if (filesSize > maxFileSize / 2) {
     size = (filesSize / 1024 / 1024 / 1024).toFixed(1) + "GB";
   }
+  size = 100;
   var format = "zip";
 
   if (filesSize > maxFileSize) {