基于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>
js
点击查看代码
/*文件上传方法*/
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) {/*全部文件上传完毕执行该方法*/ }
    });
});
Controller
点击查看代码
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;
        }
    }
}
posted @   创世星开心的佛手  阅读(345)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示