1.添加js引用

<script src="JS/jquery-1.4.2.min.js" type="text/javascript"></script>

<script src="JS/ajaxfileupload.js" type="text/javascript"></script>

2.html页面代码

  1. <fieldset>
  2. <legend><strong>项目申报附件</strong></legend>
  3. <div style="width: 100%;">
  4. <a style="margin-left: 78%" href="../../ToSaveExcel/Help/预算编制项目相关上报范本文档.zip" target="_blank">点击查看上报范本</a>
  5. <%-- <a href="../../ToSaveExcel/Yrzxsl/Silverlight.rar" target="_blank">点击下载添加附件安装程序</a>--%>
  6. <img alt="新增附件" onclick="addfiletable()" style="cursor:pointer" src="../../Images/ImgButton/xzfj.gif"/>
  7. </div>
  8.  
  9. <table cellpadding="5" cellspacing="0" width="100%" style="border-collapse: collapse;
  10. margin-top: 6px;" id="Bz_file_talbe" class="shenpi">
  11. <thead>
  12. <tr>
  13. <th style="width: 50px;">
  14. 序号
  15. </th>
  16. <th>
  17. 附件名称
  18. </th>
  19. <th style="width: 300px;">
  20. 文件
  21. </th>
  22. <th style="width: 200px;">
  23. 备注
  24. </th>
  25. <th style="width: 100px;">
  26. 操作
  27. </th>
  28. </tr>
  29. </thead>
  30. <tbody>
  31. </tbody>
  32. </table>
  33. <input type="hidden" id="hideFileNames"/>
  34. </fieldset>

3.js代码

  1. function addfiletable() {
  2. var length = $("#Bz_file_talbe tbody tr").length;
  3. var id = parseInt(parseInt(length) + 1);
  4. var html = ' <tr>' +
  5. '<td style="width:40px;"><input type="hidden" value="' + id + '" />' + id + '</td>' +
  6. '<td> <input type="text" name="file_name" style="width: 90%;" /></td>' +
  7. '<td style="width:300px;">' + getuploadhtml(id) + '</td>' +
  8. '<td style="width:200px;"><input type="text" id="file_remark" style="width: 150px;" /></td>' +
  9. '<td><a href="javascript:void(0)" onclick="SaveFiled(this)">[保存]</a>&nbsp;<a href="javascript:void(0)" onclick="delbudgetfile(this)">[删除]</a></td>' +
  10. '</tr>';
  11. $("#Bz_file_talbe tbody").append(html);
  12.  
  13. }
  1. function SaveFiled(obj) {
  2. var tr = $(obj).parent().parent();
  3. var id = tr.find("td:eq(0) input").val();
  4. var filename = tr.find("td:eq(1) input").val();
  5. var filepath = $("#hideFileNames").val();
  6. var remark = tr.find("td:eq(3) input").val();
  7. if (filename == "") {
  8. AlertMsg('附件名称不能为空!');
  9. return;
  10.  
  11. }
  12. if (filepath == "") {
  13. AlertMsg('附件上传异常,请重新上传!');
  14. return;
  15. }
  16. tr.find("td:eq(1)").empty().html('<span>' + filename + '</span>');
  17. tr.find("td:eq(2)").empty().html('<input type="hidden" id="tab_hdfilename" value="' + filepath + '" />' + getorginfilename(filepath));
  18. tr.find("td:eq(3)").empty().html('<span>' + remark + '</span>');
  19. tr.find("td:eq(4)").empty().html('<a href="javascript:void(0)" onclick="downbudgetfile(this)">[下载]</a>&nbsp;<a href="javascript:void(0)" onclick="delbudgetfile(this)">[删除]</a>');
  20.  
  21. }
  1. function delbudgetfile(obj) {
  2. var tr = $(obj).parent().parent();
  3. var id = tr.find("td:eq(0) input").val();
  4. tr.remove();
  5.  
  6. }
  7. function getuploadhtml(id) {
  8. return '<div style="margin-left:20px;">' +
  9. '<div style="position:relative;width:270px;height:30px;background:#fff;border:1px solid #eee;">' +
  10. '<input type="text" style="position:absolute;left:0;top:0;width:80%;height:100%;z-index:1; border:none; background:#fff;" id= "importPicName'+id+'" /> <img src="../../Images/attach.png" style="float:right; height:30px; width:30px;" />' +
  11. '<input type ="file" id="ImportPicInput'+id+'" name= "myfile" onchange="f_onchangeinput(this)" style="position:absolute;left:0;top:0;width:100%;height:100%;z-index:999;opacity:0;-ms-filter: \'alpha(opacity=0)";\' /> '+
  12. '</div> '+
  13. '</div>';
  14. }
  15. function downbudgetfile(obj) {
  16. var tr = $(obj).parent().parent();
  17. var path = tr.find("td:eq(2) input").val();
  18. $.ajax({
  19. url: "../HandlerFiles/downFiles.ashx?type=IsExistsFile&fn=" + encodeURI(path) + "&t=" + new Date().getTime(),
  20. async: false,
  21. success: function(data) {
  22. if (data == "1") {
  23. $("#isexistsfile").val("1");
  24. }
  25. else {
  26. $("#isexistsfile").val("0");
  27. AlertMsg('服务器上该文件已被删除或不存在!');
  28. }
  29. }
  30. });
  31. if ($("#isexistsfile").val() == "1") {
  32. $("#comdownshow").attr("src", "../HandlerFiles/downFiles.ashx?type=DownFile&fn=" + encodeURI(path)) + "&t=" + new Date().getTime();
  33. }
  34. }
  35. function getorginfilename(strfile) {
  36. var filename = "";
  37. if (strfile != "") {
  38. filename = strfile.substr(strfile.indexOf(',') + 1).replace(';', '');
  39. }
  40. return filename;
  41. }

上传代码:

  1. function f_onchangeinput(obj) {
  2. var id = $(obj).attr("id").replace("ImportPicInput", "");
  3. $("#importPicName" + id).val($(obj).val());
  4. $.ajaxFileUpload({
  5. type: "POST",
  6. url: "/Common2/HandlerFiles/downFiles.ashx?type=UpLoad",
  7. data: { "nmae": "sulin" }, //要传到后台的参数,没有可以不写
  8. secureuri: false, //是否启用安全提交,默认为false
  9. fileElementId: $(obj).attr("id"), //文件选择框的id属性
  10.  
  11. dataType: 'json', //服务器返回的格式
  12. async: false,
  13. success: function(data) {
  14. if (data.status == '1') {
  15. document.getElementById("hideFileNames").value = data.msg;
  16. } else {
  17.  
  18. document.getElementById("hideFileNames").value = "";
  19.  
  20. }
  21. },
  22. error: function(data, status, e) {
  23.  
  24. }
  25. });
  26. }

4.后端代码

  1. public void UpLoad(HttpContext context)
  2. {
  3. HttpPostedFile file = context.Request.Files["myfile"];
  4. string name = context.Request["nmae"].ToString();
  5. string uploadPath =
  6. HttpContext.Current.Server.MapPath("~/upload/");//uploadfile/
  7. //这里可以加验证
  8. if (file != null && file.ContentLength > )
  9. {
  10. if (!Directory.Exists(uploadPath))
  11. {
  12. Directory.CreateDirectory(uploadPath);
  13. }
  14. //var c = IsAllowedExtension(file);
  15. //验证后缀名称
  16. if (IsAllowExtension(file))
  17. {
  18. //上传文件类型
  19. string ContentType = file.ContentType;
  20. int a = file.FileName.LastIndexOf("\\") + ;
  21. int b = file.FileName.LastIndexOf(".");
  22. string fileName = file.FileName.Substring(a, b - a );
  23. string suffix = file.FileName.Substring(file.FileName.LastIndexOf(".") + );//上传文件后缀名
  24. //上传文件大小
  25. int filesize = file.ContentLength;
  26. //生成上传文件名称
  27. //string FileName = fileName.Replace(suffix, "") + "_" + DateTime.Now.ToString("yyyyMMddHHmmssfff");
  28. string FileName = Guid.NewGuid().ToString() + "," + fileName.Replace(suffix, "");
  29. string newFileName = FileName + "." + suffix;
  30. file.SaveAs(uploadPath + newFileName);
  31. string json = JsonConvert.SerializeObject(new { status = , msg = newFileName });
  32. context.Response.Write(json);
  33. }
  34. else
  35. {
  36. string json = JsonConvert.SerializeObject(new { status = , msg = "上传文件类型不允许" });
  37. context.Response.Write(json);
  38. }
  39. }
  40. else
  41. {
  42. string json = JsonConvert.SerializeObject(new { status = , msg = "NO" });
  43. context.Response.Write(json);
  44. }
  45. }
  46.  
  47. /// <summary>
  48. /// 验证后缀名
  49. /// </summary>
  50. /// <returns></returns>
  51. public bool IsAllowExtension(HttpPostedFile filename)
  52. {
  53. if (filename != null)
  54. {
  55. string suffix = filename.FileName.Substring(filename.FileName.LastIndexOf("."));
  56. List<string> listextension = new List<string> {
  57. ".xls",".xlsx",".doc",".docx",".pdf",".jpg",".gif","",".bmp",".png"
  58. };
  59. if (listextension.Contains(suffix.ToLower())) return true;
  60. }
  61. return false;
  62.  
  63. }
  64. public static bool IsAllowedExtension(HttpPostedFile file)
  65. {
  66. BinaryReader reader = new BinaryReader(file.InputStream);
  67.  
  68. Dictionary<string, string> diclist = new Dictionary<string, string> {
  69.  
  70. {"","doc|xls|ppt|wps"},
  71. {"","docx|pptx|xlsx|zip"},
  72. {"","txt"},
  73. {"","rar"},
  74. {"","exe"},
  75. {"","pdf"},
  76. {"","htm|html"},
  77. {"","jpg"},
  78. {"","gif"},
  79. {"","png"},
  80. {"","bmp"},
  81. {"","bat"}
  82. };
  83. string fileclass = "";
  84. try
  85. {
  86. for (int i = ; i < ; i++)
  87. {
  88. fileclass += reader.ReadByte().ToString();
  89. }
  90. }
  91. catch (Exception)
  92. {
  93. throw;
  94. }
  95. if (diclist.ContainsKey(fileclass))
  96. {
  97. return true;
  98. }
  99. else
  100. {
  101. return false;
  102. }
  103. }

5.效果图

ajaxfileupload下载地址

ajaxfileupload 上传使用demo的更多相关文章

  1. ajaxFileUpload上传文件后提示下载的问题

    在某些版本浏览器下ajaxFileUpload上传文件会提示下载, 1:为什么? 可以观察到,即便返回 JsonResult 在返回的头中也没有任何消息体,直接理解为文本了. 2:解决方案 前端: f ...

  2. 在使用 AjaxFileUpload 上传文件时,在项目发布到 iis 后,图片不能预览

    在使用 AjaxFileUpload  上传文件时,图片已经上传成功了,在站点没有发布时,可以预览,可是在项目发布到 iis 后,图片就不能预览,在网上找了很多的方案也没解决,最后的解决方案如下: 1 ...

  3. Jquery+ajaxfileupload上传文件

    1.说明 ajaxfileupload.js是一款jQuery插件,用于通过ajax上传文件. 下载地址:http://files.cnblogs.com/files/lengzhan/ajaxfil ...

  4. ajaxFileUpload上传文件没反应

    调用jquery的ajaxFileUpload异步上传文件,IE浏览器不进入success问题 原因:json转换异常,ie浏览器处理后的返回json没有<pre>标签,直接是完整的jso ...

  5. PHP裁剪图片并上传完整demo

    日前根据功能需求,要做一个图片裁剪上传的功能,在网上找了好久,找到了这位仁兄写的demo! 下载压缩包

  6. springmvc+ajaxFileUpload上传文件(前后台彻底分离的情况下)

    首先是导入jar包: web.xml: <servlet> <servlet-name>mvc-dispatcher</servlet-name> <serv ...

  7. 用ajaxFileUpLoad上传文件不能正确取得返回值的问题

    刚開始没有认为ajax请求的dataType參数的重要性,用了ajaxFileUpLoad插件后,假设页面代码例如以下: fileElementId : ['imageToUpload'], url ...

  8. ajaxFileUpload上传文件简单示例

    写在前面: 上传文件的方式有很多,最近在做项目的时候,一开始也试用了利用jquery的插件ajaxFileUpload来上传大文件,下面,用一个上传文件的简单例子,记录下,学习的过程~~~ 还是老样子 ...

  9. springMVC 多文件上传前后台demo

    只是个demo,需要数据校验,流程是通的 配置上传文件的解析器 前端代码; <%@ page language="java" contentType="text/h ...

随机推荐

  1. php算法题---对称的二叉树

    php算法题---对称的二叉树 一.总结 一句话总结: 可以在isSymmetrical()的基础上再加一个函数comRoot,函数comRoot来做树的递归判断 /*思路:首先根节点以及其左右子树, ...

  2. class.forname & classloader

    From https://www.cnblogs.com/gaojing/archive/2012/03/15/2413638.html 传统的使用jdbc来访问数据库的流程为: Class.forN ...

  3. Spring MVC(十六)--Spring MVC国际化实例

    上一篇文章总结了一下Spring MVC中实现国际化所需的配置,本文继上一文举一个完整的例子,我选择用XML的方式.我的场景是这样的: 访问一个页面时,这个页面有个表格,对表头中的列名实现国际化. 第 ...

  4. git -- 项目开发最常用操作记录

    官方Git - Book https://git-scm.com/book/zh/v2 ------------------------------git配置以及公钥生成--------------- ...

  5. 4_1.springboot2.xWeb开发使用thymeleaf

    1.简介 如果使用SpringBoot: 1).创建SpringBoot应用,选中我们需要的模块: 2).SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来: ...

  6. 4_8.springboot2.x嵌入式servlet容器启动原理解析

    问题描述: 什么时候创建嵌入式的Servlet容器工厂? 什么时候获取嵌入式的Servlet容器并启动Tomcat? *获取嵌入式的Servlet容器工厂: 1).SpringBoot应用启动运行ru ...

  7. C# IP正则表达式

    public static bool IsValidIp(string strIn) { bool b = Regex.IsMatch(strIn, @"^[0-9]{1,3}\.[0-9] ...

  8. 将近半个小时,把一小段简短的汇编代码写成了C语言代码

    我自己看,感觉好像一句一句翻译的,写得很是生硬,不如书上写的灵活 0040137E    8B7424 04       MOV ESI,DWORD PTR SS:[ESP+4]00401382    ...

  9. webpack 简单笔记(三)vue-cli 使用 webpack-bundle-analyzer 分析

    当我们使用CommonsChunkPlugin插件时可以使用webpack-bundle-analyzer插件来分析分块是否达到我们的目地 安装 npm install --save-dev webp ...

  10. 保持SSH连接的linux服务器不断线

    目录 1. secureCRT和putty连接设置 2. 命令行设置 3. 服务器配置修改 4. 参考 使用ssh连接远程服务器的时候,如果长时间没有操作,远程连接就有可能中断.正在执行的程序和vim ...