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

实现文件上传的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> 
(0)

相关推荐

  • java使用smartupload组件实现文件上传的方法

    本文实例讲述了java使用smartupload组件实现文件上传的方法.分享给大家供大家参考.具体分析如下: 文件上传几乎是所有网站都具有的功能,用户可以将文件上传到服务器的指定文件夹中,也可以保存在数据库中,这里主要说明smartupload组件上传. 在讲解smartupload上传前,我们先来看看不使用组件是怎么完成上传的原理的? 废话不多说直接上代码: 复制代码 代码如下: import java.io.*; import java.util.*; import javax.servle

  • java基于servlet使用组件smartUpload实现文件上传

    文件上传在web应用中是非常常见的,现在我就介绍下基于servlet的文件上传,基于Struts2的文件上传可以看: 页面端代码: <%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <ht

  • java组件smartupload实现上传文件功能

    使用jsp和serlvet来实现最简单的上传,供大家参考,具体内容如下 1.页面index.jsp <%@ page language="java" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":

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

    实现文件上传的form表单必须满足两个条件:method="post" enctype="multipart/form-data" 表单中enctype="multipart/form-data"的意思是设置表单的MIME编码.默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传:只有使用了multipart/form-data,才能完整的传递文件数据.enctype="multi

  • Android 大文件上传时处理上传进度问题小结

    进行大文件上传时,显示上传进度是很好的用户体验,可以有效的缓解用户急躁的情绪.今天Android IT 分享一个好的显示上传进度的解决方案. 我们用到以下两个类就可实现带进度条的文件上传: 1.CustomMultiPartEntity extends MultipartEntity, 2.HttpMultipartPost extends AsyncTask import java.io.FilterOutputStream; import java.io.IOException; impor

  • Struts2实现文件上传时显示进度条功能

    最近在做一个资源共享的项目中,采用了Struts2.1.8+Spring2.5.6+hibernate3.32的框架整合方式进行开发.在文件上传这块,因为需要实现文件上传时显示进度条的功能,所以尝试了一下.怕以后忘记,先贴出来分享下. 要在上传文件时能显示进度条,首先需要实时的获知web服务端接收了多少字节,以及文件总大小,这里我们在页面上使用AJAX技术每一秒向服务器发送一次请求来获得需要的实时上传信息.但是当我们使用struts2后怎么在服务端获得实时的上传大小呢?这里需要用到commons

  • .net文件上传时实现通过文件头确认文件类型的方法

    本文实例讲述了.net文件上传时实现通过文件头确认文件类型的方法,其中 script 用来返回给页面的数据,读者还可以根据自身需要对相关部分自行修改.另外,文件头也可以自行添加定义. 主要代码如下: AppCode/FileUpload.cs using System; using System.Collections.Generic; using System.IO; using System.Text; using System.Text.RegularExpressions; using

  • axios实现文件上传并获取进度

    本文实例为大家分享了axios实现文件上传并获取进度的具体代码,供大家参考,具体内容如下 实现效果 代码部分 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <div id="app">

  • JS文件上传时如何使用MD5加密

    目录 JS文件上传使用MD5加密 什么是MD5? MD5怎么用? 前端中md5的用法 md5的使用方法 JS文件上传使用MD5加密 什么是MD5? MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致.(MD5 百度百科) 简而言之,就是对上传文件进行加密. MD5怎么用? 在页面中使用需下载依赖包,yarn spark-md5或npm in

  • Java中实现文件上传下载的三种解决方案(推荐)

    java文件上传与文件下载是程序开发中比较常见的功能,下面通过本文给大家介绍Java中实现文件上传下载的三种解决方案,具体详情如下所示: 第一点:Java代码实现文件上传 FormFile file=manform.getFile(); String newfileName = null; String newpathname=null; String fileAddre="/numUp"; try { InputStream stream = file.getInputStream(

  • java实现文件上传功能

    本文实例为大家分享了java实现文件上传的具体代码,供大家参考,具体内容如下 一.文件上传准备工作 对于文件上传,浏览器在上传的过程中将文件以流的形式提交到服务器. 可以选择apache的commons-fileupload包作为文件上传组件, commons-fileupload包依赖于commons-io包. 可以在Maven导入该commons-fileupload包,Maven会帮我们导入依赖的jar包commons-io. <dependency> <groupId>co

  • JavaWeb中struts2实现文件上传下载功能实例解析

    在做B/S系统时,通常会涉及到上传文件和下载文件,在没接struts2框架之前,我们都是使用apache下面的commons子项目的FileUpload组件来进行文件的上传,但是那样做的话,代码看起来比较繁琐,而且不灵活,在学习了struts2后,struts2为文件上传下载提供了更好的实现机制,在这里我分别就单文件上传和多文件上传的源代码进行一下讲解,这里需要导入文件下载上传的两个jar文件,一个是commons-fileupload-1.2.2.jar,另一个是commons-io-2.0.

随机推荐