<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK"%>
<%@page import="task.object.*" %>
<%@page import="task.task.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body bgcolor=pink>
<form method="post" action="Upload" ENCTYPE="multipart/form-data">
<table align=center width="80%" border="1" cellspacing="2" cellpadding="6" height="240">
<caption>
<span ID=banner style="font-size:15pt;font-family:'宋体'" >
<strong>上传任务</strong></caption>
<tbody><tr bgcolor="E4EDF9">
<td width=20%><div align="center">任务ID</div></td>
<td> <input type="text" size="50" name="taskid"></td></tr>
<tr bgcolor="F1F3F5">
<td width=20%><div align="center">任务名称</div></td>
<td> <input type="text" size="50" name="taskname"></td></tr></tr>
<tr bgcolor="E4EDF9">
<td width=20%><div align="center">执行者</div></td>
<td> <input type="text" size="50" name="taskfinisher"></td>
</tr>
<tr bgcolor="F1F3F5">
<td width=20%><div align="center">开始时间</div></td>
<td> <input type="text" name="year" size="5">年
<select name="month">
<option value="13"></option>
<option value="01">1</option>
<option value="02">2</option>
<option value="03">3</option>
<option value="04">4</option>
<option value="05">5</option>
<option value="06">6</option>
<option value="07">7</option>
<option value="08">8</option>
<option value="09">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
月 <select name="date">
<option value="32"></option>
<option value="01">1</option>
<option value="02">2</option>
<option value="03">3</option>
<option value="04">4</option>
<option value="05">5</option>
<option value="06">6</option>
<option value="07">7</option>
<option value="08">8</option>
<option value="09">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
日</td></tr><tr><td colspan="2"><hr></td></tr>
<tr bgcolor="E4EDF9"><td colspan=2><input type="file" name="file1" size="50" >
<input type="submit" value="上传"></td></tr></tbody>
</table>
</form>
</body>
</html>后台的servlet取到的文件名为空,如果把<form method="post" action="Upload" ENCTYPE="multipart/form-data">放到<input type="file" name="file1" size="50" >前就不会出现此问题,请问哪位能明白是为什么,怎么样处理一下?
pageEncoding="GBK"%>
<%@page import="task.object.*" %>
<%@page import="task.task.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body bgcolor=pink>
<form method="post" action="Upload" ENCTYPE="multipart/form-data">
<table align=center width="80%" border="1" cellspacing="2" cellpadding="6" height="240">
<caption>
<span ID=banner style="font-size:15pt;font-family:'宋体'" >
<strong>上传任务</strong></caption>
<tbody><tr bgcolor="E4EDF9">
<td width=20%><div align="center">任务ID</div></td>
<td> <input type="text" size="50" name="taskid"></td></tr>
<tr bgcolor="F1F3F5">
<td width=20%><div align="center">任务名称</div></td>
<td> <input type="text" size="50" name="taskname"></td></tr></tr>
<tr bgcolor="E4EDF9">
<td width=20%><div align="center">执行者</div></td>
<td> <input type="text" size="50" name="taskfinisher"></td>
</tr>
<tr bgcolor="F1F3F5">
<td width=20%><div align="center">开始时间</div></td>
<td> <input type="text" name="year" size="5">年
<select name="month">
<option value="13"></option>
<option value="01">1</option>
<option value="02">2</option>
<option value="03">3</option>
<option value="04">4</option>
<option value="05">5</option>
<option value="06">6</option>
<option value="07">7</option>
<option value="08">8</option>
<option value="09">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
</select>
月 <select name="date">
<option value="32"></option>
<option value="01">1</option>
<option value="02">2</option>
<option value="03">3</option>
<option value="04">4</option>
<option value="05">5</option>
<option value="06">6</option>
<option value="07">7</option>
<option value="08">8</option>
<option value="09">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
日</td></tr><tr><td colspan="2"><hr></td></tr>
<tr bgcolor="E4EDF9"><td colspan=2><input type="file" name="file1" size="50" >
<input type="submit" value="上传"></td></tr></tbody>
</table>
</form>
</body>
</html>后台的servlet取到的文件名为空,如果把<form method="post" action="Upload" ENCTYPE="multipart/form-data">放到<input type="file" name="file1" size="50" >前就不会出现此问题,请问哪位能明白是为什么,怎么样处理一下?
解决方案 »
- tomcat服务器过几天后就无法访问,要重启整个服务器才可以访问
- 想把tomcat集成到iis,在IIS添加ISAPI筛选器isapi_redirect,一直没有箭头出现
- 这样返回记录集后要不要关闭stmt、conn,要关怎么关
- 高手请进,关于读取*.txt文件的问题,急等!
- 做jsp一个月大概能拿多少钱(能独立完成中型项目)?
- oracle数据的导入和导出!!急啊!就差他就可以交货了 :( 分不够++++
- resin服务器运行一段时间后java.exe经常耗内存99%
- 请教JSP + tomcat4.1.8
- 怎么我从书上抄的例子都不能执行啊?
- 我的win2000下端口80自动分给了asp,我想分给resin,改那里呀?
- 关于Struts2 Action 定义的问题
- 过滤器无效,请高手看看
提交的时候,只有<form>标签中间的表单元素的值被服务端接收到。
??
页面没问题吧,你看下你后台是不是获得出错,DEBUG看下,直接可以用get方法获得得
java.lang.NullPointerException
at cn.cheney.UploadServlet.doPost(UploadServlet.java:84)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:616)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:619)
http://blog.csdn.net/cjg520jie/archive/2009/04/13/4068578.aspx参考下里面的代码
import java.io.PrintWriter;import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;import java.util.*;
import java.io.*;/**
* Servlet implementation class Upload
*/
public class Upload extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Upload() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out=response.getWriter();
request.setCharacterEncoding("GBK");
response.setContentType("text/html; charset=GBK");
//设置上传文件的名字
String uploadPath ="D:\\JavaSource\\Task\\uploadDir\\"; // 上传文件的目录
String tempPath = "D:\\JavaSource\\Task"; // 临时文件目录
HttpSession ses=request.getSession();
try {
FileItemFactory factory = new DiskFileItemFactory();
// 设定缓存大小
((DiskFileItemFactory) factory).setSizeThreshold(4096);
// 设定暂存Directory
((DiskFileItemFactory) factory).setRepository(new File(tempPath)); ServletFileUpload upload = new ServletFileUpload(factory);
// 设置最大文件尺寸,这里是4MB
upload.setSizeMax(4194304);
// 得到所有的文件:
//解析用户请求的参数,取出文件上传信息
List fileItems = upload.parseRequest(request);
Iterator i = fileItems.iterator();
// 依次处理每一个文件:
if(i.hasNext()) {
FileItem fileItem = (FileItem)i.next();
String fileName = fileItem.getName();
System.out.println(fileName);
//获取上传文件名,接下来处理一下,取出 文件名.扩展名 即可
fileName = fileName.substring(fileName.lastIndexOf("\\")+1);
File uploadDir = new File(uploadPath,fileName); //构造上传文件存放位置
fileItem.write(uploadDir);
// 文件路径存入数据库
String sql_filename=uploadPath+fileName;
String taskid=(String)ses.getAttribute("add_taskid");
System.out.println("任务id:"+taskid);
FileUpload_down.add_file(sql_filename, taskid);
ses.removeAttribute("add_taskid");
// 获得文件名,这个文件名包括路径:
}
response.sendRedirect("welcom.jsp");
}
catch(Exception e) {
// 可以跳转出错页面
e.printStackTrace();
String error="上传失败!";
ses.setAttribute("error", error);
response.sendRedirect("error.jsp");
} }}
这个是后台处理程序,麻烦各位看看,是我哪里写错了