基于Layui + .net mvc文件上传
html
点击查看代码
<div>
<table width="100%">
<tr>
<td>
<button type="button" class="layui-btn layui-btn-sm" id="附件上传">附件上传</button>
</td>
</tr>
</table>
</div>
点击查看代码
/*文件上传方法*/
layui.use('upload', function () {
var $ = layui.jquery
, upload = layui.upload
, form = layui.form;
upload.render({
elem: '#附件上传'//附件上传按钮ID
, url: '/tool/upload(附件上传后台地址)'
, multiple: true
, accept: 'file'
, exts: 'zip|rar|7z|doc|docx|ppt|pptx|txt|pdf'//允许的类别
, before: function (obj) {/*上传前执行的部分*/ }
, done: function (res) {/*上传后执行的部分*/ }
, allDone: function (res) {/*全部文件上传完毕执行该方法*/ }
});
});
点击查看代码
using System;
using System.Web.Mvc;
namespace SFMVC3._0.Controllers
{
public class toolsController : Controller
{
/// <summary>
/// 文件上传方法
/// </summary>
/// <param name="fc"></param>
/// <returns></returns>
public string upload(FormCollection fc)
{
try
{
string guid = Guid.NewGuid().ToString();
var file = Request.Files[0];
if (file == null ||
String.IsNullOrEmpty(file.FileName) ||
file.ContentLength == 0)
{
return "{\"code\":1,\"msg\":\"文件上传失败!\" ,\"data\":{\"src\":\"\"}}";
}
string filename = System.IO.Path.GetFileName(file.FileName);
string newName = buildFileName(guid, filename);
string virtualPath = String.Format("/upload/{0}", newName);
string path = Server.MapPath(virtualPath);
file.SaveAs(path);
return "{\"code\":0,\"msg\":\"文件上传成功!\" ,\"data\":{\"src\":\"\",\"filename\":\"" + filename + "\",\"newname\":\"" + newName + "\",\"size\":\"" + (file.ContentLength/1024) + "\"}}";
}
catch (Exception ex)
{
return "{\"code\":1,\"msg\":\"文件上传失败!\" ,\"data\":{\"src\":\"\"}}";
}
}
/// <summary>
/// 根据文件名称生产新的文件名称;
/// </summary>
/// <param name="filename"></param>
/// <returns></returns>
public static string buildFileName(string newname, string filename)
{
string postfix = filename.Substring(filename.LastIndexOf('.'));
string newName = newname + postfix;
return newName;
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)