你这样获取是正确,如果没获到,你看是不是提交给这个servlet了,
<form action="uploadMusic"  id="fileUploadForm" name="fileUploadForm" method="post" enctype="multipart/form-data" >或
<form action="uploadmusic"  id="fileUploadForm" name="fileUploadForm" method="post" enctype="multipart/form-data" >
你试一下

解决方案 »

  1.   

    最有可能的问题就是<form action="./uploadMusic"  id="fileUploadForm" name="fileUploadForm" method="post" enctype="multipart/form-data" >里面的action="./uploadMusic"错误。你换个别的,比如../uploadMusic,或../../uploadMusic试试
      

  2.   

    把form里的
    method="post"
    去掉
      

  3.   

    <form action="./uploadMusic"  id="fileUploadForm" name="fileUploadForm" method="post" enctype="multipart/form-data" >
    你是上传文件enctype="multipart/form-data"当Form中有这个时候就表示传递给服务器的是一个流了.你用request.getParamter();是取不到参数的~
    解决办法有许多种:
    常用的有使用jspsmartupload包 来接收参数
    在就是使用struts中的FORMFILE 来接收.
    使用jspsmartupload包时候接收代码是:
    //建立上传对象
    SmartUpload su=new SmartUpload();
    //初始化
    su.initialize(pageContext);
    //上传
    su.upload();
    com.jspsmart.upload.File f=su.getFiles().getFile(0);
    byte[] b=new byte[f.getSize()];
    for(int i=0;i<f.getSize();i++)
    {
    b[i]=f.getBinaryData(i);
    }
    long time=System.currentTimeMillis();
    String filename=time+"."+f.getFileExt();
    System.out.println("hhhhhhhhhh="+filename);
    f.saveAs("/tmp/"+filename,su.SAVE_VIRTUAL);
    String realPath=request.getSession().getServletContext().getRealPath("/");
    TestDB.Exec(filename,(realPath+"tmp\\"));
    filename=filename.substring(0,filename.length()-4)+".htm";
    System.out.println("filename="+filename);
    }
    我随便找了个贴的,要取不是上传文件的其他参数就用su.getRequest().getParameter("musictype")来的到就可以了~如果使用formfile直接使用老办法就可以接收到参数
      

  4.   

    中国JavaEE技术交流社区-欢迎您的参与探讨!
    -- 打造“中国JavaEE技术交流社区“,欢迎j2ee爱好者朋友们的踊跃参与!
    http://www.j2eedve.com/
      

  5.   

    用了enctype="multipart/form-data" >了那样是不能获取到的
      

  6.   

    首先要谢谢各位的积极帮助,但是我现在不能用smartupload及struts了,只是一个单纯的表单向servlet提交,就是上传一个文件及其相关的信息,还有没其他 的办法 啊!
      

  7.   

    如果不能用SMART组件的话,那就只能自己写上传的javabean了
    自己写的话可以解决你的问题.通用上载组件的原理及实现   
      http://bankbill.51.net/upload/
    网上有很多关于这方面的讨论 不知道你能不能使用apache的commons-fileupload
    把你的具体情况和需求能说的详细点吗?
      

  8.   

    跟你写的 enctype="multipart/form-data" 有关,加上了这个的话,你那个 request 已经不上原来的那个 request 了,必须使用  upload 里的
    request 了,进行转换!
      

  9.   

    你是再上传文件,用getParameters()是得不到文件的内容的.要通过流来实现import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.util.*;
    import org.apache.commons.fileupload.*;
    public class FileUpload extends HttpServlet {
        private static final String CONTENT_TYPE = "text/html; charset=GBK";    //Initialize global variables
        public void init() throws ServletException {
        }    //Process the HTTP Get request
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws
                ServletException, IOException {
            response.setContentType(CONTENT_TYPE);        String con="";
            String geter="";
            System.out.println("kkkkkkkkkpppp");
            try {
                System.out.println("ll");
                DiskFileUpload fu=new DiskFileUpload();            //设置允许上传得文件的大小
                fu.setSizeMax(100*1024*1024);            //设置在内存中存储数据的大小
                fu.setSizeThreshold(4096);            //如果文件超过SizeThreshold值,就暂时存放到c:/temp
                fu.setRepositoryPath("c:\\temp");            //开始读取上传信息
                List fileItems =fu.parseRequest(request);            Iterator it=fileItems.iterator();            //循环的处理用户的请求
                while(it.hasNext()){                FileItem item=(FileItem)it.next();                //如果是信息内容和接受人的信息就记录下
                    if(item.isFormField()){                    System.out.println("opop");
                        //说明这个不是文件,
                        String paraName=item.getFieldName();
                        if(paraName.equals("geter")){                        geter=item.getString();
                        }else if(paraName.equals("content")){                        con=item.getString();
                        }
                    }else{                    System.out.println("opopyyy");
                        //说明是文件,
                        //得到文件全路径
                        String name=item.getName();
                        long size=item.getSize();//文件大小                    //得到文件名
                        String filename=name.substring(name.lastIndexOf("\\")+1);
                        //上传文件
                         System.out.println("ok");
                        item.write(new File("c:\\upload\\"+filename));                }            }        } catch (Exception ex) {
                ex.printStackTrace();
            }    }    //Process the HTTP Post request
        public void doPost(HttpServletRequest request, HttpServletResponse response) throws
                ServletException, IOException {
            doGet(request, response);
        }    //Clean up resources
        public void destroy() {
        }
    }
      

  10.   

    使用了multipart/form-data最好就只用FILE就可以了.不要再加别的了.
    HIDDEN是没有问题了.除了这些,别的可输入的在提交之后都是不可以的.比如RADIO或者TEXT.