added check for seeking-capability of inputStream in SaveStream before resetting the position

This commit is contained in:
Kees Damen
2015-05-07 23:36:21 +02:00
parent 92de1f7207
commit 085feeb118
2 changed files with 14 additions and 11 deletions

View File

@@ -26,10 +26,10 @@ namespace Orchard.Azure.Services.FileSystems.Media {
public bool TrySaveStream(string path, Stream inputStream) {
try {
if (FileExists(path)) {
return false;
}
if (FileExists(path)) {
return false;
}
SaveStream(path, inputStream);
}
catch {
@@ -43,7 +43,9 @@ namespace Orchard.Azure.Services.FileSystems.Media {
// Create the file. The CreateFile() method will map the still relative path.
var file = CreateFile(path);
inputStream.Position = 0; // We need to read from the beginning of the stream, even if it isn't at it's beginning.
if (inputStream.CanSeek) {
inputStream.Position = 0; // We need to read from the beginning of the stream, even if it isn't at it's beginning.
}
using (var outputStream = file.OpenWrite()) {
var buffer = new byte[8192];
@@ -54,8 +56,9 @@ namespace Orchard.Azure.Services.FileSystems.Media {
outputStream.Write(buffer, 0, length);
}
}
inputStream.Position = 0; // Rolling back the stream so external readers will have it easier.
if (inputStream.CanSeek) {
inputStream.Position = 0; // Rolling back the stream so external readers will have it easier.
}
}
/// <summary>

View File

@@ -312,10 +312,10 @@ namespace Orchard.FileSystems.Media {
/// <returns>True if success; False otherwise.</returns>
public bool TrySaveStream(string path, Stream inputStream) {
try {
if (FileExists(path)) {
return false;
}
if (FileExists(path)) {
return false;
}
SaveStream(path, inputStream);
}
catch {