asp.net core mvc实现文件上传实例

工作用到文件上传的功能,在这个分享下 ~~

Controller:        

public class PictureController : Controller

{

private IHostingEnvironment hostingEnv;

public PictureController(IHostingEnvironment env)

{

this.hostingEnv = env;

}

// GET: /<controller>/

public IActionResult Index()

{

return View();

}

public IActionResult UploadFiles()

{

return View();

}

[HttpPost]

public IActionResult UploadFiles(IList<IFormFile> files)

{

long size = 0;

foreach (var file in files)

{

var filename = ContentDispositionHeaderValue

.Parse(file.ContentDisposition)

.FileName

.Trim('"');

//这个hostingEnv.WebRootPath就是要存的地址可以改下

filename = hostingEnv.WebRootPath + $@"\{filename}";

size += file.Length;

using (FileStream fs = System.IO.File.Create(filename))

{

file.CopyTo(fs);

fs.Flush();

}

}

ViewBag.Message = $"{files.Count} file(s) /{ size}bytes uploaded successfully!";

return View();

}

}

view:

<form asp-action="UploadFiles"

asp-controller="Picture"

method="post"

enctype="multipart/form-data">

<input type="file" name="files" multiple />

<input type="submit" value="Upload Selected Files" />

</form>

文件是上传到wwwroot目录文件下的,这我也看不太懂还在学习,欢迎大家交流~~

----------------------------------------------------------------------------------------------------------

下面是jquery ajax方式上传的

post方式的action的z参数没用 因为只有一个post方式的会404错误所以又加了一个get的action

Controller: 

public IActionResult UploadFilesAjax()

{

return View();

}

[HttpPost]

public IActionResult UploadFilesAjax(string z)

{

long size = 0;

var files = Request.Form.Files;

foreach (var file in files)

{

var filename = ContentDispositionHeaderValue

.Parse(file.ContentDisposition)

.FileName

.Trim('"');

filename = @"C:\Users\lg.HL\Desktop" + $@"\{filename}";

size += file.Length;

using (FileStream fs = System.IO.File.Create(filename))

{

file.CopyTo(fs);

fs.Flush();

}

}

string message = $"{files.Count} file(s) / { size}bytes uploaded successfully!";

return Json(message);

}

view

<form method="post" enctype="multipart/form-data">

<input type="file" id="files"

name="files" multiple />

<input type="button"

id="upload"

value="Upload Selected Files" />

</form>

jquery

<script type="text/javascript">

$(document).ready(function () {

$("#upload").click(function (evt) {

var fileUpload = $("#files").get(0);

var files = fileUpload.files;

var data = new FormData();

for (var i = 0; i < files.length ; i++) {

data.append(files[i].name, files[i]);

}

$.ajax({

type: "POST",

url: "/Picture/UploadFilesAjax",

contentType: false,

processData: false,

data: data,

success: function (message) {

alert(message);

},

error: function () {

alert("There was error uploading files!");

}

});

});

});

</script>

欢迎大家交流~ 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是 asp.net core mvc实现文件上传实例 的全部内容, 来源链接: utcz.com/z/314253.html

回到顶部