🍅选题推荐——以防找不到我们,点击上方订阅专栏✌✌
2024年计算机Java Python安卓APP微信小程序asp.net项目PHP毕业设计2000个热门选题推荐计算机毕业设计如何选题?
安装Chatgdt搜索答辩老师常提的问题-----------------重点
👇🏻文末获取源码联系👇🏻
一、项目介绍
1.1研究背景
自改革开放以来,国内的基础网络设施的不断进步和终端电子设备的高度普及,互联网用户规模越来越大[1]。现在人们越来越离不开计算机网络、互联网所带来的好处了,如今各式各样的系统已广泛应用,不同于以往传统的管理方式了,只有跟上时代的发展才能不会被淘汰掉,所以将传统的线下管理带到线上去实施,能够很大程度的提升管理效率,好处也有很多,能够整体提升新时代的背景之下新的样貌,更加朝气蓬勃。基于以上情况,高校迎新系统逐渐出现在人们视野之中,高校迎新已成为人们生活中不可缺少的一部分,同时也将成为今后发展中很有潜力的增长点。
1.2系统开发目的与意义
1.2.1 开发目的
开发一套高校迎新系统可以让管理者在有限的时间内对高校迎新信息做出相应的调整,对高校迎新的一切事务往最好的一面进行安排,达到事半功倍的效用。
在最原始的高校迎新管理方式中,人们通过纸质用手写来记录高校迎新的动作,利用这种方式有着特别大的弊端,比如重复记录,漏记等。针对这种情况,开发一个高校迎新系统,帮助高校迎新进行管理。当前国内开发的线上管理系统还不是那么全面,并且都是基于智能手机进行搭建的平台,因此开发一个高校迎新系统也是有必要的,开发这样一个B\S架构的高校迎新系统,满足管理者在上面对系统首页,个人中心,院系管理,专业管理,班级管理,学生管理,入学须知管理,专业信息管理,院系简介管理,专业调剂管理,手续办理管理,缴费信息管理,宿舍信息管理,系统管理等功能进行管理,打造一个更好更便利的高校迎新系统!
二、功能介绍
4.2 系统整体设计
高校迎新系统实现学生登录,查询信息,修改个人信息等。所有功能都通过与后台服务器的数据交互来完成的。
具体的软件功能结构图如图4-2所示:
系统功能实现
当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到系统的导航条,通过导航条导航进入各功能展示页面进行操作。系统首页界面如图5-1所示:
入学须知:在入学须知页面的输入栏中输入标题名称,专业名称和选择类型进行查询,可以查看到入学须知详细信息,并根据需要进行评论或收藏操作,入学须知页面如图5-3所示:
管理员模块实现
管理员进入主页面,主要功能包括对系统首页,个人中心,院系管理,专业管理,班级管理,学生管理,入学须知管理,专业信息管理,院系简介管理,专业调剂管理,手续办理管理,缴费信息管理,宿舍信息管理,系统管理等进行操作
管理员点击入学须知管理。进入入学须知页面输入标题名称、专业名称和选择类型进行查询、新增或删除入学须知列表,并根据需要对入学须知详细信息进行详情、修改、查看评论或删除操作。如图5-8所示:
管理员点击系统管理。在通知公告页面输入标题进行查询、新增或删除通知公告列表,并根据需要对通知公告详细信息进行详情、修改或删除操作,还可以对在线咨询、关于我们、系统简介和轮播图管理进行详细操作。如图5-10所示:
学生点击宿舍信息管理。在宿舍信息页面输入学生姓名、专业、寝室号和床位号进行查询宿舍信息列表,并根据需要对宿舍详细信息进行详情操作。如图5-12所示
三、关键代码
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.StaticFiles;
using Xiezn.Core.Business.Services;
using Xiezn.Core.Common.Helpers;
namespace Xiezn.Core.Controllers
{
/// <summary>
/// 文件接口
/// </summary>
[Route("[controller]/[action]")]
// [Authorize(Roles = "Admin,Client")]
public class FileController : Controller
{
private readonly IHostingEnvironment _hostingEnvironment;
private readonly string _savePath;
private readonly ConfigService _configBLL;
public FileController(IHostingEnvironment hostingEnvironment)
{
_hostingEnvironment = hostingEnvironment;
_savePath = _hostingEnvironment.WebRootPath + Path.DirectorySeparatorChar + ConfigHelper.GetConfig("SchemaName") + Path.DirectorySeparatorChar + "upload" + Path.DirectorySeparatorChar;
_configBLL = new ConfigService();
}
/// <summary>
/// 文件上传(单个文件)
/// </summary>
/// <param name="file"></param>
/// <param name="type">当type=1时,表示后端上传接口(保存文件名到config表)</param>
/// <returns></returns>
[DisableRequestSizeLimit]
[HttpPost]
public JsonResult Upload(List<IFormFile> file, int type = 0)
{
try
{
//IFormFileCollection files = Request.Form.Files; // 获取上传的文件
if (file == null || file.Count == 0)
{
return Json(new { Code = -1, Msg = "没有上传文件!", File = "" });
}
FuncHelper.DicCreate(_savePath);
string newFileName = "";
foreach (IFormFile formFile in file)
{
if (formFile.Length > 0)
{
var timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
string fileExtension = formFile.FileName.Substring(formFile.FileName.LastIndexOf(".") + 1); // 获取文件名称后缀
//string newFileName = System.Guid.NewGuid().ToString() + "." + fileExtension; // 随机生成新的文件名
newFileName = timestamp + "." + fileExtension;
// 保存文件
var stream = formFile.OpenReadStream();
// 把 Stream 转换成 byte[]
byte[] bytes = new byte[stream.Length];
stream.Read(bytes, 0, bytes.Length);
// 设置当前流的位置为流的开始
stream.Seek(0, SeekOrigin.Begin);
// 把 byte[] 写入文件
FileStream fs = new FileStream(_savePath + newFileName, FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(bytes);
bw.Close();
fs.Close();
}
break; // 限制多文件上传
}
if (type == 1)
{
_configBLL.UpdateByName("faceFile", newFileName);
}
return Json(new { Code = 0, Msg = "上传成功!", File = newFileName });
}
catch (Exception ex)
{
return Json(new { Code = -2, Msg = "上传失败!", Data = ex.Message });
}
}
/// <summary>
/// 文件下载
/// </summary>
/// <param name="fileName">文件名</param>
/// <returns></returns>
[HttpGet]
public IActionResult Download(string fileName)
{
try
{
string url = _savePath + fileName;
var stream = System.IO.File.OpenRead(url);
//var stream = new FileStream(fullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); // 推荐此方法
string fileExt = Path.GetExtension(url);
// 获取文件的ContentType
var provider = new FileExtensionContentTypeProvider();
var memi = provider.Mappings[fileExt];
return File(stream, memi, Path.GetFileName(url));
}
catch
{
return NotFound();
}
}
}
}
四、相关案例
🍅源码获取:大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻