你这样获取是正确,如果没获到,你看是不是提交给这个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" >
你试一下
<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" >
你试一下
method="post"
去掉
你是上传文件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直接使用老办法就可以接收到参数
-- 打造“中国JavaEE技术交流社区“,欢迎j2ee爱好者朋友们的踊跃参与!
http://www.j2eedve.com/
自己写的话可以解决你的问题.通用上载组件的原理及实现
http://bankbill.51.net/upload/
网上有很多关于这方面的讨论 不知道你能不能使用apache的commons-fileupload
把你的具体情况和需求能说的详细点吗?
request 了,进行转换!
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() {
}
}
HIDDEN是没有问题了.除了这些,别的可输入的在提交之后都是不可以的.比如RADIO或者TEXT.