• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > ASP.NET文件上传Upload的实现方法

ASP.NET文件上传Upload的实现方法

作者:???笨小孩 字体:[增加 减小] 来源:互联网 时间:2017-05-11

???笨小孩通过本文主要向大家介绍了文件下载 asp.net,文件上传 asp.net,多文件上传 asp.net,js调用asp.net方法,asp.net等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例为大家分享了ASP.NET 文件上传,供大家参考,具体内容如下

1、最近应项目开发的需求要实现附件的异步上传和下载。

2、上传:文件上传到指定的路径下,并返回上传文件的信息给前端界面,如:文件的图标、上传的文件名、文件的大小。

3、上传后,在前端界面上显示上传的文件信息,点击文件名实现将上传的文件下载到本地。

4、先展示一下Demo运行的效果图:

点击提交后:

点击文件名实现下载到本地:

5、下面就给出前台代码:

<!DOCTYPE html>
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Ajax Form - jQuery EasyUI Demo</title>
 <link rel="stylesheet" type="text/css" href="http://www.jeasyui.com/easyui/themes/default/easyui.css">
 <link rel="stylesheet" type="text/css" href="http://www.jeasyui.com/easyui/themes/icon.css">
 <link rel="stylesheet" type="text/css" href="http://www.jeasyui.com/easyui/demo/demo.css">
 <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
 <script type="text/javascript" src="http://www.jeasyui.com/easyui/jquery.easyui.min.js"></script>
</head>
<body>
 <h2>Ajax Form Demo</h2>
 <div class="demo-info" style="margin-bottom:10px">
 <div class="demo-tip icon-tip"> </div>
 <div>Type in input box and submit the form.</div>
 </div>

 <div class="easyui-panel" title="Ajax Form" style="width:300px;padding:10px;">
 <form id="ff" action="api/Loding" method="post" enctype="multipart/form-data">
  <table>
  <tr>
   <td>Name:</td>
   <td><input name="name" class="f1 easyui-textbox"></input></td>
  </tr>
  <tr>
   <td>Email:</td>
   <td><input name="email" class="f1 easyui-textbox"></input></td>
  </tr>
  <tr>
   <td>Phone:</td>
   <td><input name="phone" class="f1 easyui-textbox"></input></td>
  </tr>
  <tr>
   <td>File:</td>
   <td><input name="file" class="f1 easyui-filebox"></input></td>
  </tr>
  <tr>
   <td></td>
   <td><input type="submit" value="提交"></input></td>
  </tr>
  </table>
  <input type="text" value="LodingTable" name="tableName" hidden="hidden" />
 </form>
 </div>
 <div>
 <img id="img" src="" width="20" height="20" />
 <a id="downLoad" downloadid="0" href="#"></a>
 <label>文件大小:</label>
 <label class="size"></label><button id="delete">删除</button>
 <button id="loding">导入1</button>
 </div>
 <style scoped>
 .f1 {
  width: 200px;
 }
 </style>
 <script type="text/javascript">
 $(function () {
  $("#loding").hide();
  $("#delete").hide().click(function () {
  alert("删除文件");
  });
  $("#loding").click(function () {
  var tUrl = '/api/Loding/Get';
  //var tJsonStr = '{"idInventoryPrice":"4","withdrawDetails":[{"cInvCode":"800487","cInvCodeSub":"00","iConverDiscount":"0","iUnitPrice":"9.9","iSalePrice":"9.9"},{"cInvCode":"800689","cInvCodeSub":"00","iConverDiscount":"0","iUnitPrice":"6.5","iSalePrice":"5.9"}]}';
  $.ajax({
   type: "Get",
   url: tUrl,
   dataType: "json",
   async: false,
   success: function (data) {
   alert(JSON.stringify(data));
   }
  });
  });
  $('#ff').form({
  success: function (data) {
   var json = JSON.parse(data);
   if (json.result == 1) {
   $("#delete").show();
   $("#img").attr("src", json.details[0].AttachmentNameTypeICO);
   $("#downLoad").attr("downloadid", json.details[0].ID);   $("#downLoad").html(json.details[0].AttachmentName);
   $(".size").html(json.details[0].AttachSize + "KB");
   var tUrl = 'http://localhost:11703/api/Loding/DownLoad?ID=' + $("#downLoad").attr("downloadid");
   $("#downLoad").attr("href", tUrl);
   }
   else {
   alert(json.resultdetail);
   }
  }
  });
 });
 </script>
</body>
</html> 
</div>

6、后台上传代码:

NameValueCollection nvf = HttpContext.Current.Request.Form;
  if (!Request.Content.IsMimeMultipartContent())
  {
  throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
  }
  string tempPath = "/Upload/" + DateTime.Now.ToString("yyyy-MM-dd/");
  string fileSaveLocation = HttpContext.Current.Server.MapPath("~" + tempPath);//附件的保存地址
  Dictionary<string, object> dic = new Dictionary<string, object>();
  if (!Directory.Exists(fileSaveLocation))
  {
  Directory.CreateDirectory(fileSaveLocation);
  }
  CustomMultipartFormDataStreamProvider provider = new CustomMultipartFormDataStreamProvider(fileSaveLocation);
  try
  {
  var result = await Request.Content.ReadAsMultipartAsync(provider).ContinueWith<Dictionary<string, object>>(x =>
  {
   var file = provider.FileData[0];
   FileInfo fileinfo = new FileInfo(file.LocalFileName);
   if (fileinfo.Length <= 0)
   {
   dic.Add("result", -1);
   dic.Add("resultdetail", "未上传文件");
   }
   else
   {
   double? filelength = fileinfo.Length / 1024.0;
   if (filelength > 10 * 1024)
   {
    dic.Add("result", -1);
    dic.Add("resultdetail", "上传文件不能大于10M");
   }
   else
   {
    string saveFileName = Guid.NewGuid().ToString() + fileinfo.Extension;
    fileinfo.CopyTo(Path.Combine(fileSaveLocation, saveFileName), true);
    fileinfo.Delete();
    dic.Add("result", 1);
    dic.Add("resultdetail", "上传成功");
    dic.Add("realPath", file.LocalFileName);//附件保存的绝对路径
    dic.Add("attachmentType", fileinfo.Extension);//附件类型
    dic.Add("attachmentName", Path.GetFileName(file.LocalFileName));//上传的附件名
    dic.Add("attachSize", Convert.ToInt32(filelength));//附件大小KB
    dic.Add("aealPath", tempPath + saveFileName);//附件保存相对路径
   }
   }
   return dic;
  }, TaskScheduler.FromCurrentSynchronizationContext());
  }
  catch (Exception ex)
  {
  return HandleJson.ToJson(ex.ToString(), false);
  }
  var isSuccess = dic["result"].TryToInt() == 1;
  var msg = dic["resultdetail"].TryToString();//返回上传信息
  var realPath = string.Empty;//附件保存的绝对路径
  var relativePath = string.Empty;//返回相对路径
  var AttachSize = 0;//文件大小kB
  var AttachmentType = string.Empty;//文件扩展名
  var AttachmentName = string.Empty;//原文件名
  if (isSuccess)
  {
  realPath = dic["realPath"].TryToString();
  relativePath = dic["aealPath"].TryToString();
  AttachSize = dic["attachSize"].TryToInt();
  AttachmentType = dic["attachmentType"].TryToString();
  AttachmentName = dic["attachmentName"].TryToString();
  }

  StringBuilder sql = new StringBuilder();
  if (isSuccess)
  {
  try
  {
   #region 获取图标路径

   var ICOPath = string.Empty;
   sql.Append(@"SELECT * FROM dbo.AttachmentType(NOLOCK) WHERE AttachmentType=@AttachmentType");
   var ICOTable = Common.HandleSQL.GetData(sql.ToString(), null, new SqlParameter[] { new SqlParameter("@AttachmentType", AttachmentType) });
   if (ICOTable.Rows.Count <= 0)
   {
   ICOPath = "";
   }
   else
   {
   ICOPath = ICOTable.Rows[0]["AttachmentNameTypeICO"].ToString();
   }

   #endregion 获取图标路径

   #region 保存上传记录

   sql.Cl



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • asp.net实现多个文件同时下载功能
  • asp.net实现服务器文件下载到本地的方法
  • Asp.Net修改上传文件大小限制方法
  • asp.NET中实现文件的压缩和解压(3种方式)
  • ASP.NET文件上传Upload的实现方法
  • ASP.NET访问共享文件夹的详细步骤
  • ASP.NET文件上传Upload的实现方法
  • ASP.NET访问共享文件夹的详细步骤
  • asp.net core实现文件上传功能
  • asp.net图片文件的上传与删除方法

相关文章

  • 2018-08-20.net core下对于附件上传下载的实现示例
  • 2017-05-11详解ASP.NET配置文件Web.config
  • 2017-05-11asp.net Cookie值中文乱码问题解决方法
  • 2017-05-11asp.net错误页面处理示例分享
  • 2018-08-20Asp.net Mvc表单验证气泡提示效果
  • 2017-05-11ASP.NET Web API如何将注释自动生成帮助文档
  • 2017-05-11asp.net StreamReader 创建文件的实例代码
  • 2017-05-11Asp.net中的mail的发送
  • 2017-05-11asp.net开发中常见公共捕获异常方式总结(附源码)
  • 2017-05-11深入Lumisoft.NET组件POP3邮件接收与删除操作的使用详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 看到本质而不是现象--解决ASP.NET CS0016的问题
    • ASP.NET中实现弹出日历示例
    • asp.net中List的使用方法
    • 使用Visual Studio 2017作为Linux C++开发工具
    • ASP.NET清空缓存时遇到的问题简析
    • ASP.Net巧用窗体母版页实例
    • asp.net MVC利用自定义ModelBinder过滤关键字的方法(附demo源码下载)
    • asp.net 分页存储过程实例剖析心得
    • 在ASP.NET 2.0中操作数据之四:使用ObjectDataSource展现数据
    • asp.net安全、实用、简单的大容量存储过程分页第1/2页

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有