jquery easyui filebox 上传附件 + asp.net后台

form必须加这个属性enctype="multipart/form-data",否则后台获取不到文件

 1 <script>
 2 function uploadFiles() {
 3     $(‘#fm‘).form(‘submit‘, {
 4                 url: ‘Upload.aspx?fjssmk=Xmgl‘,
 5                 success: function (result) {
 6                     var result = eval(‘(‘ + result + ‘)‘);
 7                     //可以写一些提示的代码等等..
 8                 }
 9             });
10 }
11 </script>
1 <form id="fm" method="post" enctype="multipart/form-data">
2     <input id="upload1" class="easyui-filebox" name="file1" data-options="prompt:‘选择文件...‘,onChange:function(){uploadFiles()}" style="width: 150px" />
3 </form>

asp.net 后台代码 , 其中Sys_fjxx为一个Model文件, 可以去掉 , 对数据库的操作改成你自己的就可以了,

 1 public class Upload : IHttpHandler, IRequiresSessionState
 2     {
 3
 4         public bool IsReusable
 5         {
 6             get { return false; }
 7         }
 8
 9         public void ProcessRequest(HttpContext context)
10         {
11             try
12             {
13                 string fjssmk = context.Request["fjssmk"];
14                 string userid = Utility.GetCurrentUser().zybh + "";
15
16                 HttpFileCollection httpFileCollection = context.Request.Files;
17                 HttpPostedFile file = null;
18                 if (httpFileCollection.Count > 0)
19                     file = httpFileCollection[0];
20                 if (file != null)
21                 {
22                     DBHelp.DBExecute exe = new DBHelp.DBExecute();
23                     Sys_fjxx fjxx = ConvertFile(file);
24                     fjxx.ssmk = fjssmk;
25                     fjxx.xdlj = "/UploadFiles/" + fjssmk + "/" + DateTime.Today.ToString("yyyy-MM-dd");
26                     fjxx.scrbh = int.Parse(userid);
27                     //
28                     SaveFile(fjxx.xdlj, fjxx.fwqwjm, file);
29                     exe.Add(fjxx);
30                     exe.DBCommit();
31                     string url = fjxx.xdlj + "/" + fjxx.fwqwjm;
32                     context.Response.Write("{\"fjbh\":\"" + fjxx.fjbh + "\",\"url\":\"" + url + "\",\"error\":0}");//
33                 }
34             }
35             catch (Exception exp)
36             {
37                 context.Response.Clear();
38                 context.Response.Write("{\"error\":\"" + exp.Message + "\"}");
39             }
40             finally
41             {
42                 context.Response.Flush();
43                 context.Response.End();
44             }
45         }
46         /// <summary>
47         /// 转成Sys_fjxx
48         /// </summary>
49         /// <param name="file"></param>
50         /// <returns></returns>
51         private Sys_fjxx ConvertFile(HttpPostedFile file)
52         {
53             FileInfo fi = new FileInfo(file.FileName);
54             Sys_fjxx fjxx = new Sys_fjxx();
55             fjxx.fjbh = Lsh.Service.GetLsh("Sys_fjxx", "fjbh");
56             fjxx.wjm = (fi.Name + "//").Replace(fi.Extension + "//", "");
57             fjxx.kzm = fi.Extension;
58             fjxx.wjdx = Convert.ToDecimal(file.ContentLength) / 1024;
59             fjxx.fwqwjm = DateTime.Now.Ticks + fjxx.kzm;
60             fjxx.scsj = DateTime.Now;
61             return fjxx;
62         }
63
64         private void SaveFile(string path, string filename, HttpPostedFile file)
65         {
66             if (!Directory.Exists(HttpContext.Current.Server.MapPath(path)))
67             {
68                 Directory.CreateDirectory(HttpContext.Current.Server.MapPath(path));
69             }
70             file.SaveAs(HttpContext.Current.Server.MapPath(path + "/" + filename));
71         }
72     }
时间: 2024-09-30 14:48:46

jquery easyui filebox 上传附件 + asp.net后台的相关文章

使用jquery Ajax实现上传附件功能

用过jquery的Ajax的人肯定都知道,Ajax的默认编码方式是"application/x-www-form-urlencoded",此编码方式只能编码文本类型的数据,因此Ajax发送请求的时候,会把data序列化成 一个个String类型的键值对,此种传输数据的方式能够满足大部分应用场景,然而当传输的数据里有附件的时候,此序列化机制便是我们的绊脚石.Ajax本身的序列化机制的硬伤归其原因在于在html4的时代,没有FileReader接口,在页面里无法读取File(Blob)文件

jQuery 关于IE9上传文件无法进入后台原因及解决办法(ajaxfileupload.js第四弹)

第四弹的诞生完全不在自己最初的计划之中,是有个网友看了先前关于<ajaxfileupload.js系列>的文章后提出的问题,由于自己一直是用chrome浏览器去测试demo,完全忽略IE浏览器(其实是故意的,懒得想浏览器兼容的问题,哈哈~),所以当我使用IE9去运行demo的时候,确实发现了同样的问题,就是ajax异步提交表单无法进入后台. 下面是解决整个问题的过程,以我在<jQuery 自制上传头像插件-附带Demo实例(ajaxfileupload.js第三弹) >中上传的de

jQuery 关于IE9上传文件无法进入后台问题的原因及解决办法(ajaxfileupload.js第四弹)

第四弹的诞生完全不在自己最初的计划之中,是有个网友看了先前关于<ajaxfileupload.js系列>的文章后提出的问题,由于自己一直是用chrome浏览器去测试demo,完全忽略IE浏览器(其实是故意的,懒得想浏览器兼容的问题,哈哈~),所以当我使用IE9去运行demo的时候,确实发现了同样的问题,就是ajax异步提交表单无法进入后台. 下面是解决整个问题的过程,以我在<jQuery 自制上传头像插件-附带Demo实例(ajaxfileupload.js第三弹) >中上传的de

使用jQuery Uploadify在ASP.NET 上传附件 (转)

Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示.Uploadify官方网址:http://www.uploadify.com/,在MVC中使用的方法可以参考 jQuery Uploadify在ASP.NET MVC3中的使用 和 Asp.net Mvc中使用uploadify实现图片缩放保存. 本文是一个简单的介绍Demo,主要是动态传递参数方法:通过formdata 向处理程序传递额外的表单数据: <!DOCTYPE html PUBLIC "-//W3C

JQuery Uplodify上传附件(同一个页面多个uplodify控件解决方案)

功能描述:实现同一页面中多个不同附件的上传保存,且做到最大程度的减少代码修改量(最大程度的公用),为了方便实现垃圾数据和垃圾文件的处理,项目采用临时文件夹的方式:即:文件自动上传先保存到临时文件夹下,在保存数据之后移动文件到正式目录,页面上对附件的所有操作只有用户点击“保存”后起效.插件名称及版本:Uploadify v3.1.1. 解决方案: 1.引用(页面开头): <link href="~/Scripts/UploadsFile/uploadify.css" rel=&qu

asp.net 用jquery判断fileupload上传文件的大小和类型和名字

1 <script language="javascript" type="text/javascript"> 2 //检查上传文件大小和获取文件名 3 function fileChange(target) { 4 5 var fileSize = 0; 6 7 var filePath = target.value; 8 9 var fileSystem = new ActiveXObject("Scripting.FileSystemOb

ASP.NET MVC使用jQuery无刷新上传

昨晚网友有下载了一个jQuery无刷新上传的小功能,他尝试搬至ASP.NET MVC应用程序中去,在上传死活无效果.Insus.NET使用Teamviewer远程桌面,操作一下,果真是有问题.网友是说,把源代码一一照搬的复制.难道它不能移值至ASP.NET MVC应用程序吗?Insus.NET想了一下,源代码是html+ashx的,它一定能的. 网友发送能正常运行的代码给Insus.NET...... 重点的script文件:http://download.cnblogs.com/insus/M

怎样解决asp.net.mvc上传附件超过长度问题?

最近,在做一个上传附件功能,但是文件超过4M,就报上传的文件超过长度问题 如何解决这个问题呢?这里我找了一下资料,了解一下问题所在,有3种解决方法 方案一:在所在项目的web.config配置文件中,修改maxRequestLength的值 方案二:在.net framework的安装目录下的machine.config配置文件,修改maxRequestLength的值 方案三:修改IIS服务的上传文件大小的限制 方案一: 1.修改web.config文件,改变这个maxRequestLengt

jquery 通过ajax FormData 对象上传附件

之前上传附件都是用插件,或者用form表单体检(这个是很久以前的方式了),今天突发奇想,自己来实现附件上传,具体实现如下 html: <div>   流程图: <input id="file" type="file" >   <button ng-click="bpmmainFunction.createBpm()">提交</button></div> js: $scope.bpmmai