ASP.NET MVC解决上传图片脏数据的方法(aspnetcore上传文件)全程干货

随心笔谈2个月前发布 admin
211 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

这篇文章介绍了如何使用 ASP.NET MVC 应用程序来处理文件上传功能。文章包含以下主要内容: 1. **HTML 与 CSS**:定义了表单元素和图片加载逻辑,使用 `@using` 标签加载 HTML 表单,并设置了图片加载动画。 2. **JavaScript 功能**: - **文件格式与大小验证**:使用 `checkFileTypeAndSize` 函数验证上传文件的格式(JPEG、JPG、GIF、PNG)和大小(最大1024KB)。 - **数据提交**:通过 `@Html.HiddenFor` 隐藏文件选择框,使用 AJAX 提交文件数据,并根据 uploads 的响应显示图片。 - **错误处理**:包括格式错误和大小错误的处理,显示提示信息。 - **图片删除**:定义了删除图片的功能,通过 AJAX 调用删除指定图片。 3. **图片展示**:使用 HTML 表单和 JavaScript 创建表格,显示上传成功的图片,包含图片路径和名称。 文章重点描述了文件上传的完整流程,从文件选择到上传、错误处理,再到成功展示图片。

@model MvcApplication10.Models.ImgVm
@{
ViewBag.Title=”Index”;
Layout=”~/Views/Shared/_Layout.cshtml”;
}
<style type=”text/css”>
#msg {
color: red;
}
</style>
@using (Html.BeginForm(“Index”, “Home”, FormMethod.Post, new {id=”addForm”, @class=”form-horizontal”}))
{
<input name=”file” id=”file” size=”27″ type=”file” />
<img src=”https://www.jb51.net/article/~/images/ajax-loader.gif” id=”indicator” style=”display: none;” />
<br />
<div id=”imgArea”>
<table id=”tbl”>
<tbody>
</tbody>
</table>
</div>
<div>
<span id=”msg”></span>
</div>

<div>
@Html.HiddenFor(m=> m.ImageUrl)
<input type=”submit” value=”提交”/>
</div>
}

@section scripts
{
<script src=”https://www.jb51.net/article/~/Scripts/checkFileTypeAndSize.js”></script>
<script type=”text/javascript”>
$(function() {
$(“#file”).checkFileTypeAndSize({
allowedExtensions: [‘jpg’,’jpeg’,’gif’,’png’],
maxSize: 1024, //最大允许1024KB,即1MB
success: function () {
//显示进度提示
$(‘#indicator’).css(“display”, “block”);
//清空提示内容
$(‘#msg’).text(”);
if ($(‘#fn’).text().length > 0) {
//删除图片
deleteImg();
}

//上传文件数据准备
var fd=new FormData();
fd.append(‘image’, $(‘#file’)[0].files[0]);
$.ajax({
url: ‘@Url.Action(“UploadFile”, “Home”)’,
type: “POST”,
data: fd,
contentType: false,
cache: false,
processData: false,
dataType: ‘json’,
success: function (data) {
//隐藏进度提示
$(‘#indicator’).css(“display”, “none”);
if (data.isvalid) {
//$(‘#fileTemplate’).tmpl(data).appendTo(‘#imgArea’);
createTableTr();
$(‘#thumb’).attr(‘src’, data.filepath);
$(‘#fn’).text(data.filename);
//清空上传文件框内容
$(‘#file’).val(”);
//给隐藏域赋值
$(‘#ImageUrl’).val(data.filepath);
} else {
$(‘#msg’).text(data.message);
}
}
});

},
extensionerror: function () {
//alert(‘允许的格式为:jpg,jpeg,gif,png’);
$(‘#msg’).text(‘允许的格式为:jpg,jpeg,gif,png’);
return;
},
sizeerror: function () {
//alert(‘最大尺寸1024KB,即1MB’);
$(‘#msg’).text(‘最大尺寸1024KB,即1MB’);
return;
}
});
});
//删除图片
function deleteImg() {
$.ajax({
cache: false,
url: ‘@Url.Action(“DeleteFileByName”, “Home”)’,
type: “POST”,
data: { smallname: $(‘#fn’).text() },
success: function (data) {
if (data.msg) {
$(‘#fn’).parent().parent().remove();
}
},
error: function (jqXhr, textStatus, errorThrown) {
alert(“出错了 ‘” + jqXhr.status + “‘ (状态: ‘” + textStatus + “‘, 错误为: ‘” + errorThrown + “‘)”);
}
});
}
//创建表格
function createTableTr() {
var table=$(‘#tbl’);
table.append(“<tr><td><img id=’thumb’ /></td><td colspan=’2′><span id=’fn’></span></td></tr>”);
}
</script>
}

© 版权声明

相关文章