MVC3 上传文件
注意:红色部分必须添加
前台:
@{
ViewBag.Title = AutoUpdater.Profile.title + " - 上传升级文件";
}
@model AutoUpdater.Models.UploadFileModel
<h2>上传升级文件</h2>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@Html.ValidationSummary(true)
<div class="validation-summary-errors">@ViewBag.ErrorMessage</div><br />
@using (Html.BeginForm("UploadFile", "Operations", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<div>
<fieldset>
<legend>升级文件信息</legend>
<div class="editor-label">
@Html.LabelFor(m => m.Version)
</div>
<div class="editor-field">
@Html.TextBoxFor(m => m.Version)
@Html.ValidationMessageFor(m => m.Version)
</div>
<div class="editor-label">
@Html.LabelFor(m => m.UFile)
</div>
<div class="editor-field">
<input type="file" id="upfile" name="upfile" />
</div>
<p>
<input type="submit" value="上 传" />
</p>
</fieldset>
</div>
}
后天:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult UploadFile(FormCollection collection, UploadFileModel model)
{
if (Session["UserID"] == null)
{
ViewBag.ErrorMessage = "请先登录!";
return View();
}
if (Request.Files.Count == 0)
{
ViewBag.ErrorMessage = "请选择上传的升级文件!";
return View();
}
var fileVersion = Request.Files[0];
if (fileVersion == null || (fileVersion != null && fileVersion.ContentLength == 0))
{
ViewBag.ErrorMessage = "请选择上传的升级文件!";
return View();
}
if (fileVersion != null && fileVersion.ContentLength > 0)
{
if (fileVersion.ContentLength < Profile.minLen || fileVersion.ContentLength > Profile.maxLen)
{
ViewBag.ErrorMessage = string.Format("上传的升级文件必须介于{0}K-{1}K之间!", Profile.minLen / 1024, Profile.maxLen / 1024);
return View();
}
using (var db = new LogDB(Profile.dbpath))
{
if (db.ExistVersion(model.Version.ToUpper()))
{
ViewBag.ErrorMessage = "已经存在相同版本号的升级文件!";
return View();
}
}
string suffix = Path.GetExtension(fileVersion.FileName).ToLower();
string fileName = string.Format("{0}{1}", model.Version.ToUpper(), suffix);
fileVersion.SaveAs(Path.Combine(Profile.filepath, fileName));
using (var db = new LogDB(Profile.dbpath))
{
db.Write(fileName, Session["UserID"].ToString(), fileVersion.ContentLength, model.Version.ToUpper());
}
return RedirectToAction("FileList", "Operations");
}
return View();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)