From e33eb89e807343b91f4098ac3c1da5bb8e90e603 Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Wed, 19 Sep 2012 17:20:58 -0700 Subject: [PATCH] #18832: Overwrite files when unzipping a media folder Work Item: 18832 --HG-- branch : 1.x --- .../Modules/Orchard.Media/Services/MediaService.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Orchard.Web/Modules/Orchard.Media/Services/MediaService.cs b/src/Orchard.Web/Modules/Orchard.Media/Services/MediaService.cs index 944cc6054..e85d61004 100644 --- a/src/Orchard.Web/Modules/Orchard.Media/Services/MediaService.cs +++ b/src/Orchard.Web/Modules/Orchard.Media/Services/MediaService.cs @@ -310,8 +310,20 @@ namespace Orchard.Media.Services { // skip disallowed files if (FileAllowed(entry.FileName, false)) { string fullFileName = _storageProvider.Combine(targetFolder, entry.FileName); + using (var stream = entry.OpenReader()) { - _storageProvider.TrySaveStream(fullFileName, stream); + // the call will return false if the file already exists + if (!_storageProvider.TrySaveStream(fullFileName, stream)) { + + // try to delete the file and save again + try { + _storageProvider.DeleteFile(fullFileName); + _storageProvider.TrySaveStream(fullFileName, stream); + } + catch (ArgumentException) { + // ignore the exception as the file doesn't exist + } + } } } }