. NetCore 에서 여러 파일 을 업로드 하 는 몇 가지 예시
23376 단어 file파일 업로드multipleAspNetCore
form 방식 으로 그림 업로드
html 코드 부터 살 펴 보 겠 습 니 다. 파일 을 업로드 하려 면 form 요소 안에 있 는 것 을 설정 해 야 합 니 다. enctype="multipart/form-data" 속성 과 post 방식 입 니 다. 파일 업로드 방식 을 더 선택 하려 면 파일 type = 'file' 요 소 를 속성 multiple = 'multiple' 로 설정 해 야 합 니 다. 따라서 다음 과 같은 내용 이 있 습 니 다.
由于采用form提交,这个测试用例只接用了button元素默认的type=submit来提交表单,对应的后台Action中代码如下:
///
/// form
///
///
///
[HttpPost]
public async Task FileUp(MoUser user)
{
if (user.MyPhoto == null || user.MyPhoto.Count <= 0) { MsgBox(" 。"); return View(); }
//var file = Request.Form.Files;
foreach (var file in user.MyPhoto)
{
var fileName = file.FileName;
var contentType = file.ContentType;
var len = file.Length;
var fileType = new string[] { "p_w_picpath/jpeg", "p_w_picpath/png" };
if (!fileType.Any(b => b.Contains(contentType))) { MsgBox($" {string.Join(",", fileType)} 。"); return View(); }
if (len > 1024 * 1024 * 4) { MsgBox(" 4M 。"); return View(); }
var path = Path.Combine(@"D:\F\ \vs2017
etcore
etcore01\WebApp01\wwwroot\myfile", fileName);
using (var stream = System.IO.File.Create(path))
{
await file.CopyToAsync(stream);
}
}
MsgBox($" ");
return View();
} 전단 에서 백 엔 드 까지 의 Action 은 이러한 form 폼 을 제출 하 는 방식 이 매우 간단 하 다 고 말 할 수 밖 에 없다. 주의해 야 할 것 은 Action 에서 사용 하 는 실제 모델 방식 으로 업 로드 된 파일 정보 에 대응 하 는 것 이다. 여 기 는 MoUser 류 를 사용자 정의 하고 속성 을 통 해 public List MyPhoto { get; set; } html 폼 의 파일 type = 'file' 과 일치 하 는 name 속성 이름 name = "MyPhoto":
public class MoUser
{
public int UserId { get; set; } = 1;
public string UserName { get; set; } = " 3";
public List MyPhoto { get; set; }
} 이렇게 하면 실제 모델 을 통 해 업 로드 된 파일 정 보 를 사용자 정의 MoUser 클래스 의 MyPhoto 속성 에 저장 할 수 있 습 니 다.
ajax 사진 업로드
이 곳 은 위의 예 에서 html 에서 뭔 가 를 수정 해 야 합 니 다. form 으로 제출 하지 않 고 일반 button 단 추 를 지정 하여 ajax 의 제출 을 촉발 합 니 다. 전체 html 코드 는 다음 과 같 습 니 다.