.net core版 文件上传/ 支持批量上传拖拽及预览功能(bootstrap fileinput上传文件)

发布时间 - 2026-01-11 00:23:37    点击率:

上篇文章给大家介绍了MVC文件上传支持批量上传拖拽及预览文件内容校验功能

本篇内容主要解决.net core中文件上传的问题  开发环境:ubuntu+vscode

1.导入所需要的包:nuget install bootstrap-fileinput

注意:这里的导包需要在终端导入【需要在wwwroot文件夹下执行nuget命令】如下图

如果发现没有nuget命令,则需要通过apt-get 或者yum 给系统安装nuge包管理工具,这个nuget和vscode中的插件不是一回事

2前台页面编写:

index.cshtml:

@{
 ViewData["Title"] = "Home Page";
 Layout = null;
}
<script src="~/jQuery.1.9.0/Content/Scripts/jquery-1.9.0.js"></script>
<script src="~/bootstrap.3.3.0/content/Scripts/bootstrap.js"></script>
<link rel="stylesheet" href="~/bootstrap.3.3.0/content/Content/bootstrap.css" rel="external nofollow" >
<script type="text/javascript" src="~/bootstrap-fileinput.4.3.8/content/Scripts/fileinput.js"></script>
<script type="text/javascript" src="~/bootstrap-fileinput.4.3.8/content/Scripts/locales/zh.js"></script>
<link rel="stylesheet" href="~/bootstrap-fileinput.4.3.8/content/Content/bootstrap-fileinput/css/fileinput.css" rel="external nofollow" >
 <script type="text/javascript">
  $(function () {
   var control = $("#txt_file");
   var uploadrul = "/Home/UploadFile";
   control.fileinput({
    language: 'zh', //设置语言
    uploadUrl: uploadrul, //上传的地址
    allowedFileExtensions: ['png'],//接收的文件后缀
    showUpload: true, //显示批量上传按钮
    showCaption: false,//是否显示标题
    browseClass: "btn btn-primary", //按钮样式  
    dropZoneEnabled: true,//是否显示拖拽区域
    //minImageWidth: 50, //图片的最小宽度
    //minImageHeight: 50,//图片的最小高度
    //maxImageWidth: 1000,//图片的最大宽度
    //maxImageHeight: 1000,//图片的最大高度
    //maxFileSize: 0,//单位为kb,如果为0表示不限制文件大小
    //minFileCount: 0,
    maxFileCount: 100,
    enctype: 'multipart/form-data',
    validateInitialCount: true,
    previewFileIcon: "<i class='glyphicon glyphicon-king'></i>",
    msgFilesTooMany: "选择上传的文件数量({n}) 超过允许的最大数值{m}!",
   });
   //导入文件上传完成之后的事件
   $("#txt_file").on("fileuploaded", function (event, data, previewId, index) {
   });
  });
 </script>
</table>
 <div> 
  <form>
   <div>
    <div class="modal-header">
     <h4 class="modal-title" id="myModalLabel">请选择xml文件</h4>
    </div>
    <div class="modal-body">
     <input type="file" name="txt_file" id="txt_file" multiple class="file-loading" />
    </div>
   </div>
  </form>
 </div>

基本上和asp.net mvc下边没有区别,只有一个地方需要特别注意一下,外部的script和css文件的引用文件需要放到wwwroot文件中,而不是项目的根目录下。

预览图:

3.主要的区别 ,后台

代码如下:

public JsonResult UploadFile()
  {
   uploadResult result = new uploadResult();
   try
   {
    var oFile = Request.Form.Files["txt_file"];
    Stream sm=oFile.OpenReadStream();
    result.fileName = oFile.FileName;
    if(!Directory.Exists(AppContext.BaseDirectory+"/Image/"))
    {
     Directory.CreateDirectory(AppContext.BaseDirectory+"/Image/");
    }
    string filename=AppContext.BaseDirectory+"/Image/" + DateTime.Now.ToString("yyyymmddhhMMssss")+Guid.NewGuid().ToString() + ".png";
    FileStream fs=new FileStream(filename,FileMode.Create);
    byte[] buffer =new byte[sm.Length];
    sm.Read(buffer,0,buffer.Length);
    fs.Write(buffer,0,buffer.Length);
    fs.Dispose();
   }
   catch(Exception ex)
   {
    result.error = ex.Message;
   }
   return Json(result);
  }
  public class uploadResult
  {
   public string fileName { get; set; }
   public string error { get; set; }
  }

在netcore中无法再通过Request.Files对象来获取从前台传递的文件,这里需要使用Request.Form.Files来获取来自客户端提交的文件,接下来需要一个uploadResult结构体,给前台返回json对象  这个结构中必须包含error字段,用来给前台返回错误数据,详情查看官方文档-官网地址

附一张最终的上传成功保存到本地的图片:

以上所述是小编给大家介绍的.net core版 文件上传/ 支持批量上传拖拽及预览功能(bootstrap fileinput上传文件),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# bootstrap  # fileinput上传文件  # 拖拽  # .Net Core实现图片文件上传下载功能  # ASP.NET Core文件上传与下载实例(多种上传方式)  # asp.net core实现文件上传功能  # .NetCore实现上传多文件的示例详解  # 解决ASP.NET Core Mvc文件上传限制问题实例  # asp.net core mvc实现文件上传实例  # asp.net core分块上传文件示例  # NetCore 3.0文件上传和大文件上传的限制详解  # 上传  # 文件上传  # 给大家  # 小编  # 在此  # 只有一个  # 请选择  # 所需要  # 所述  # 给我留言  # 官网  # 感谢大家  # 如下图  # 系统安装  # 上传文件  # 则需  # 客户端  # 而不是  # 上篇 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在阿里云香港服务器快速搭建网站?  如何在腾讯云服务器快速搭建个人网站?  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程  公司网站制作价格怎么算,公司办个官网需要多少钱?  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  如何用JavaScript实现文本编辑器_光标和选区怎么处理  高端企业智能建站程序:SEO优化与响应式模板定制开发  Laravel如何使用Blade组件和插槽?(Component代码示例)  如何在IIS中配置站点IP、端口及主机头?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  深圳网站制作的公司有哪些,dido官方网站?  ,怎么在广州志愿者网站注册?  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  西安专业网站制作公司有哪些,陕西省建行官方网站?  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  Python文本处理实践_日志清洗解析【指导】  如何快速查询域名建站关键信息?  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  UC浏览器如何设置启动页 UC浏览器启动页设置方法  七夕网站制作视频,七夕大促活动怎么报名?  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  如何快速搭建高效服务器建站系统?  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  MySQL查询结果复制到新表的方法(更新、插入)  Laravel如何实现用户密码重置功能?(完整流程代码)  如何在服务器上三步完成建站并提升流量?  公司门户网站制作流程,华为官网怎么做?  JavaScript中的标签模板是什么_它如何扩展字符串功能  北京企业网站设计制作公司,北京铁路集团官方网站?  Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  如何用5美元大硬盘VPS安全高效搭建个人网站?  如何快速使用云服务器搭建个人网站?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  node.js报错:Cannot find module &#39;ejs&#39;的解决办法  如何在七牛云存储上搭建网站并设置自定义域名?  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  深入理解Android中的xmlns:tools属性  Bootstrap整体框架之CSS12栅格系统