반응형
WebAPI 파일 업로드 - 디스크에 파일을 쓰지 않음
FormData를 사용하여 ASP에 업로드한 파일 처리에 대한 모든 문서/자습서/질문.NET WebAPI 처리기 사용MultipartFormDataStreamProvider멀티파트 스트림을 처리하여 관련 양식 필드와 파일로 분할합니다.
var root = HttpContext.Current.Server.MapPath("~/App_Data");
var provider = new MultipartFormDataStreamProvider(root);
await Request.Content.ReadAsMultipartAsync(provider);
foreach (MultipartFileData file in provider.FileData)
{
// File
}
그러나 파일은 처리 중에 자동으로 디렉터리에 기록됩니다.
제가 그냥 사용할 수 있을 때는 많은 번거로움이 있는 것 같습니다.HttpContext.Current.Request.Files[0].InputStream메모리에서 지정된 파일 스트림에 직접 액세스합니다.
어떻게 WebAPI가 사용에 따른 IO 오버헤드 없이 파일 스트림에 직접 액세스할 수 있습니까?MultipartFormDataStreamProvider?
공식 튜토리얼: http://www.asp.net/web-api/overview/advanced/sending-html-form-data,-part-2
해결됨:
기존의 단순을 사용합니다.사용자 지정 클래스 또는 제공자가 필요하지 않습니다.이것은 사용자 지정 공급자를 작성하여 솔루션을 해결한 중복 질문과 다릅니다.
그런 다음 WebAPI 핸들러에서 다음과 같이 사용합니다.
public async Task<IHttpActionResult> UploadFile()
{
if (!Request.Content.IsMimeMultipartContent())
{
return StatusCode(HttpStatusCode.UnsupportedMediaType);
}
var filesReadToProvider = await Request.Content.ReadAsMultipartAsync();
foreach (var stream in filesReadToProvider.Contents)
{
var fileBytes = await stream.ReadAsByteArrayAsync();
}
return StatusCode(HttpStatusCode.OK);
}
언급URL : https://stackoverflow.com/questions/27965568/webapi-file-uploading-without-writing-files-to-disk
반응형
'programing' 카테고리의 다른 글
| 오라클 오류, 열은 여기서 허용되지 않습니다. (0) | 2023.08.27 |
|---|---|
| 이름과 경로가 다른 파일에 Git 패치를 적용하는 방법은 무엇입니까? (0) | 2023.08.27 |
| 단일 레코드만 가져오는 경우에도 Oracle을 통해 예상되는 대량의 I/O (0) | 2023.08.22 |
| 자바스크립트 함수를 매 분마다 실행하고 최대 3번 실행하기를 원합니다. (0) | 2023.08.22 |
| 하위 디렉터리를 나열하지 않고 폴더의 전원 차단 폴더 크기 (0) | 2023.08.22 |