Skip to content
This repository was archived by the owner on Nov 20, 2018. It is now read-only.

Commit 777eb18

Browse files
committed
Changed SaveAs(string) to Save(Stream)
1 parent 02363da commit 777eb18

File tree

2 files changed

+23
-14
lines changed

2 files changed

+23
-14
lines changed

src/Microsoft.AspNetCore.Http.Abstractions/IFormFile.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,14 @@ public interface IFormFile
5050
/// <summary>
5151
/// Saves the contents of the uploaded file.
5252
/// </summary>
53-
/// <param name="path">The path of the file to create.</param>
54-
void SaveAs(string path);
53+
/// <param name="target">The stream to save the file to.</param>
54+
void Save(Stream target);
5555

5656
/// <summary>
5757
/// Asynchronously saves the contents of the uploaded file.
5858
/// </summary>
59-
/// <param name="path">The path of the file to create.</param>
59+
/// <param name="target">The stream to save the file to.</param>
6060
/// <param name="cancellationToken"></param>
61-
Task SaveAsAsync(string path, CancellationToken cancellationToken = default(CancellationToken));
61+
Task SaveAsync(Stream target, CancellationToken cancellationToken = default(CancellationToken));
6262
}
6363
}

src/Microsoft.AspNetCore.Http/Features/FormFile.cs

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

4+
using System;
45
using System.IO;
56
using System.Threading;
67
using System.Threading.Tasks;
@@ -74,27 +75,35 @@ public Stream OpenReadStream()
7475
/// <summary>
7576
/// Saves the contents of the uploaded file.
7677
/// </summary>
77-
/// <param name="path">The path of the file to create.</param>
78-
public void SaveAs(string path)
78+
/// <param name="target">The stream to save the file to.</param>
79+
public void Save(Stream target)
7980
{
80-
using (var fileStream = File.Create(path, DefaultBufferSize))
81+
if (target == null)
8182
{
82-
var inputStream = OpenReadStream();
83-
inputStream.CopyTo(fileStream, DefaultBufferSize);
83+
throw new ArgumentNullException(nameof(target));
84+
}
85+
86+
using (var readStream = OpenReadStream())
87+
{
88+
readStream.CopyTo(target, DefaultBufferSize);
8489
}
8590
}
8691

8792
/// <summary>
8893
/// Asynchronously saves the contents of the uploaded file.
8994
/// </summary>
90-
/// <param name="path">The path of the file to create.</param>
95+
/// <param name="target">The stream to save the file to.</param>
9196
/// <param name="cancellationToken"></param>
92-
public async Task SaveAsAsync(string path, CancellationToken cancellationToken = default(CancellationToken))
97+
public async Task SaveAsync(Stream target, CancellationToken cancellationToken = default(CancellationToken))
9398
{
94-
using (var fileStream = File.Create(path, DefaultBufferSize, FileOptions.Asynchronous))
99+
if (target == null)
100+
{
101+
throw new ArgumentNullException(nameof(target));
102+
}
103+
104+
using (var readStream = OpenReadStream())
95105
{
96-
var inputStream = OpenReadStream();
97-
await inputStream.CopyToAsync(fileStream, DefaultBufferSize, cancellationToken);
106+
await readStream.CopyToAsync(target, DefaultBufferSize, cancellationToken);
98107
}
99108
}
100109
}

0 commit comments

Comments
 (0)