Zip File Upload: Added support for multiple files
Showing
1 changed file
with
6 additions
and
4 deletions
| ... | @@ -23,10 +23,10 @@ using Microsoft.VisualStudio.TestTools.LoadTesting; | ... | @@ -23,10 +23,10 @@ using Microsoft.VisualStudio.TestTools.LoadTesting; |
| 23 | 23 | ||
| 24 | namespace LIL_VSTT_Plugins | 24 | namespace LIL_VSTT_Plugins |
| 25 | { | 25 | { |
| 26 | [DisplayName("Zip File Upload"), Description("Creates an ZIP archive of the file to be uploaded using the files name and adding .zip. Warning, uses %TEMP% for temp storage.")] | 26 | [DisplayName("Zip File Upload"), Description("Creates an ZIP archive of each of the files to be uploaded using the files name and adding .zip. Warning, uses %TEMP% for temp storage.")] |
| 27 | public class ZipFileUploadBeforePost : WebTestRequestPlugin | 27 | public class ZipFileUploadBeforePost : WebTestRequestPlugin |
| 28 | { | 28 | { |
| 29 | String tempDir = null; | 29 | Queue<String> deleteDirs = new Queue<string>(); |
| 30 | public override void PreRequest(object sender, PreRequestEventArgs e) | 30 | public override void PreRequest(object sender, PreRequestEventArgs e) |
| 31 | { | 31 | { |
| 32 | if (e.Request.Body.GetType() == typeof(FormPostHttpBody)) { | 32 | if (e.Request.Body.GetType() == typeof(FormPostHttpBody)) { |
| ... | @@ -35,8 +35,9 @@ namespace LIL_VSTT_Plugins | ... | @@ -35,8 +35,9 @@ namespace LIL_VSTT_Plugins |
| 35 | if(param.GetType() == typeof(FileUploadParameter)) | 35 | if(param.GetType() == typeof(FileUploadParameter)) |
| 36 | { | 36 | { |
| 37 | FileUploadParameter fparam = (FileUploadParameter)param; | 37 | FileUploadParameter fparam = (FileUploadParameter)param; |
| 38 | tempDir = Path.GetTempPath() + "\\" + Guid.NewGuid().ToString(); | 38 | String tempDir = Path.GetTempPath() + "\\" + Guid.NewGuid().ToString(); |
| 39 | Directory.CreateDirectory(tempDir); | 39 | Directory.CreateDirectory(tempDir); |
| 40 | deleteDirs.Enqueue(tempDir); | ||
| 40 | Directory.CreateDirectory(tempDir + @"\ZipDir"); | 41 | Directory.CreateDirectory(tempDir + @"\ZipDir"); |
| 41 | File.Copy(fparam.FileName, tempDir + @"\ZipDir\" + Path.GetFileName(fparam.FileName)); | 42 | File.Copy(fparam.FileName, tempDir + @"\ZipDir\" + Path.GetFileName(fparam.FileName)); |
| 42 | ZipFile.CreateFromDirectory(tempDir + @"\ZipDir", tempDir + "\\" + Path.GetFileName(fparam.FileName) + ".zip"); | 43 | ZipFile.CreateFromDirectory(tempDir + @"\ZipDir", tempDir + "\\" + Path.GetFileName(fparam.FileName) + ".zip"); |
| ... | @@ -51,7 +52,8 @@ namespace LIL_VSTT_Plugins | ... | @@ -51,7 +52,8 @@ namespace LIL_VSTT_Plugins |
| 51 | 52 | ||
| 52 | public override void PostRequest(object sender, PostRequestEventArgs e) | 53 | public override void PostRequest(object sender, PostRequestEventArgs e) |
| 53 | { | 54 | { |
| 54 | if (tempDir != null) Directory.Delete(tempDir, true); | 55 | foreach (String dir in deleteDirs) Directory.Delete(dir, true); |
| 56 | deleteDirs.Clear(); | ||
| 55 | base.PostRequest(sender, e); | 57 | base.PostRequest(sender, e); |
| 56 | } | 58 | } |
| 57 | } | 59 | } | ... | ... |
-
Please register or sign in to post a comment