smartupload实现文件上传时获取表单数据(推荐)


Posted in Javascript onDecember 12, 2016

实现文件上传的form表单必须满足两个条件:method="post" enctype="multipart/form-data"

表单中enctype="multipart/form-data"的意思是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据。enctype="multipart/form-data"是上传二进制数据; form里面的input的值以二进制的方式传过去。所以request就得不到值了, 也就是说加了这段代码,用request就会传递不成功。

取表单字段值时,用下面的方式:

SmartUpload su = new SmartUpload(); //新建一个SmartUpload对象 
su.getRequest().getParameterValues(String name); //取数组值  
su.getRequest().getParameter(String name); //取单个参数单个值

注:在使用SmartUpload时需要添加相应的jar包

String softname=su.getRequest().getParameter("softname");

注意:一定要在su.upload();,之后使用,才可以获得值!!

<span style="font-size:14px;">public void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
      SmartUpload mySmartUpload = new SmartUpload(); 
      try{ 
        // Initialization 
        mySmartUpload.initialize(config,request,response); 
        mySmartUpload.setMaxFileSize(10*1024*1024);//限制上传文件的大小 
        //mySmartUpload.setAllowedFilesList("txt,html,jpg,js");//设置允许上传的文件类型 
        mySmartUpload.setDeniedFilesList("exe,doc");//设置禁止上传的文件列表 
        mySmartUpload.upload(); 
        String hString = mySmartUpload.getRequest().getParameter("name1"); 
        //System.out.println(hString); 
        //System.out.println(mySmartUpload.getFiles().getCount()); 
        for(int i = 0 ;i <mySmartUpload.getFiles().getCount();i++){//多个文件的上传 
          File file = mySmartUpload.getFiles().getFile(i); 
          if(file.getSize()!=0){ 
            //拼凑上传文件的新名称 
            String fileNameString = System.currentTimeMillis()+"."+file.getFileExt(); 
            //通过servlet的实际路径拼凑上传文件的保存路径,实际使用需要修改此路径 
            String path = "/upload123123"+java.io.File.separator+fileNameString; 
            file.saveAs(path); 
          } 
          Thread.sleep(100); 
          /*下载文件的语句 
          mySmartUpload.downloadFile("/路径"+"文件名称");*/ 
        } 
      }catch(Exception e){ 
        e.printStackTrace(); 
      } 
  }</span>
Javascript 相关文章推荐
深入理解Javascript中的循环优化
Nov 09 Javascript
原生js编写设为首页兼容ie、火狐和谷歌
Jun 05 Javascript
浅谈轻量级js模板引擎simplite
Feb 13 Javascript
基于bootstrap3和jquery的分页插件
Jul 31 Javascript
angularjs学习笔记之简单介绍
Sep 26 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
Jan 26 Javascript
微信小程序 教程之WXSS
Oct 18 Javascript
ionic中的$ionicPlatform.ready事件中的通用设置
Jun 11 Javascript
angular $watch 一个变量的变化(实例讲解)
Aug 02 Javascript
原生js中ajax访问的实例详解
Sep 19 Javascript
详解原生JS回到顶部
Mar 25 Javascript
vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题
Jul 31 Javascript
Javascript中call,apply,bind方法的详解与总结
Dec 12 #Javascript
微信小程序开发之圆形菜单 仿建行圆形菜单实例
Dec 12 #Javascript
深入理解javascript中concat方法
Dec 12 #Javascript
js仿微信语音播放实现思路
Dec 12 #Javascript
解析JavaScript数组方法reduce
Dec 12 #Javascript
实例分析浏览器中“JavaScript解析器”的工作原理
Dec 12 #Javascript
JS双击变input框批量修改内容
Dec 12 #Javascript
You might like
防止MySQL注入或HTML表单滥用的PHP程序
2009/01/21 PHP
php初始化对象和析构函数的简单实例
2014/03/11 PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
2014/08/28 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
2015/12/29 PHP
JavaScript与函数式编程解释
2007/04/27 Javascript
JavaScript 继承详解(四)
2009/07/13 Javascript
jqgrid 简单学习笔记
2011/05/03 Javascript
Javascript引用指针使用介绍
2012/11/07 Javascript
FF火狐下获取一个元素同类型的相邻元素实现代码
2012/12/15 Javascript
JS画5角星方法介绍
2013/09/17 Javascript
javascript获取网页宽高方法汇总
2015/07/19 Javascript
详解AngularJS 模态对话框
2016/04/07 Javascript
AngularJs  E2E Testing 详解
2016/09/02 Javascript
JS中input表单隐藏域及其使用方法
2017/02/13 Javascript
自定义事件解决重复请求BUG的问题
2017/07/11 Javascript
浅谈react-native热更新react-native-pushy集成遇到的问题
2017/09/30 Javascript
webpack打包并将文件加载到指定的位置方法
2018/02/22 Javascript
详解如何使用webpack打包多页jquery项目
2019/02/01 jQuery
基于JS实现前端压缩上传图片的实例代码
2019/05/14 Javascript
使用layui的router来进行传参的实现方法
2019/09/06 Javascript
基于javascript实现贪吃蛇经典小游戏
2020/04/10 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
2020/09/04 Javascript
Python字典操作简明总结
2015/04/13 Python
python 列表降维的实例讲解
2018/06/28 Python
Ubuntu下Python2与Python3的共存问题
2018/10/31 Python
python搜索包的路径的实现方法
2019/07/19 Python
详解Python list和numpy array的存储和读取方法
2019/11/06 Python
将python2.7添加进64位系统的注册表方式
2019/11/20 Python
python实现大战外星人小游戏实例代码
2019/12/26 Python
什么是Python中的顺序表
2020/06/02 Python
python中字符串的编码与解码详析
2020/12/03 Python
奇怪的鱼:Weird Fish
2018/03/18 全球购物
写一个方法1000的阶乘
2012/11/21 面试题
餐饮业员工工作决心书
2014/03/11 职场文书
mongodb的安装和开机自启动详细讲解
2021/08/02 MongoDB
关于python中模块和重载的问题
2021/11/02 Python