用JSPSmartUpload下载:http://61.131.30.54/123/Develop/Java/
解决方案 »
- JSP页面是UTF-8,此时该页面提交到action时,action中的中文值乱码如何解决
- spring配置数据的问题
- myeclipse 做 的 小 系 统,查 询 sql2000 里 的 信 息,查 询 结 果 全 是 空 白。
- 求救啦!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!111111111111111
- 个位师兄,jsp中怎么做图形报表?
- 关于注销的问题
- 请问如何定义整个JSP网页都有效的变量?
- 我在eclipse和weblogic8。1集成时出问题了
- 无法发送邮件,请问是什么问题,源码如下
- 请教各位高手,如何用jsp调用doc文件直接修改
- 新手请教编译的问题
- 关于统计
去掉enctype="multipart/form-data",又不能上传了 why?
enctype="multipart/form-data"
method="post">
<P>
What is your name? <INPUT type="text" name="submit-name"><BR>
What files are you sending? <INPUT type="file" name="files"><BR>
<INPUT type="submit" value="Send"> <INPUT type="reset">
</FORM>同时有上传和一般输入,enctype也是multipart/form-data,所以这里是对的,问题在于server端如何处理请求。
try
{
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
String server_path=request.getRealPath("/");
String saveDirectory =server_path+"/file_pic/";
String tmpDirectory = "c:\\";
int maxPostSize = 1024 * 1024;
boolean is_legal_file=false;
String FileDescription = null;
String FileName = null;
long FileSize = 0;
String ContentType = null;
int count = 0 ; java.util.Vector text = new java.util.Vector();//存放非文件域信息 java.util.Vector vector_file = new java.util.Vector();//存放文件域信息 DiskFileUpload upload = new DiskFileUpload();//初始化上传组件 upload.setSizeThreshold(4096);//设置文件流大小 upload.setSizeMax(maxPostSize);//设置最大文件,超过则临时存放到:tmpDirectory upload.setRepositoryPath(tmpDirectory);//设置临时存放点 List items = upload.parseRequest(request);//取得request Iterator iter = items.iterator();//初始化
int file_no=0;
int tmp = 0;
FileItem tmpItem = null;
//-------------------------------------------------
while (iter.hasNext())//表单有多个域
//-------------------------------------------------
{
tmp++;
//-------------------------------------------------
FileItem item = (FileItem) iter.next();
//-------------------------------------------------
if (item.isFormField())//如果是非文件域信息
{
FileDescription = item.getString();//取得非文件域信息,皆为字符串类型
text.addElement(FileDescription);//加入到存放非文件域信息之向量
}
else //如果是文件域信息
{
file_no++;
FileName = item.getName();
try //因为不同的浏览器会造成 path + filename, 有些则只有 filename
{
// for wintel platform
FileName = FileName.substring(FileName.lastIndexOf("\\")+1);//取得档案名称
// for unix-like platform
FileName = FileName.substring(FileName.lastIndexOf("/")+1);//取得档案名称
}
catch (Exception ex)
{
System.out.println("取文件名出错:"+ex);
}
ContentType = item.getContentType();//取得档案类型
FileSize = item.getSize();//取得档案大小
tmpItem = item; try // 將檔案寫入存檔目錄
{
//转换文件名
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyyMMddhhmmss");
java.util.Date currentTime_1 = new java.util.Date();
String ss=formatter.format(currentTime_1);
String FileName_houzhui=FileName.substring(FileName.lastIndexOf("."));
FileName=ss+file_no+FileName_houzhui;
vector_file.addElement(FileName);
File uploadedFile = new File(saveDirectory + FileName);
tmpItem.write(uploadedFile);
}
catch(Exception ex)
{
System.out.println("保存文件出错:"+ex);
System.out.println("错误位置:/servlet/com.sxztb.upload.uploadServlet");
}
}
} //转到写文件类,完成写文件
try
{
upload_write_file_servlet tody_log = new upload_write_file_servlet(server_path); tody_log.log_wite((String)text.elementAt(0),(String)text.elementAt(1),(String)text.elementAt(2),(String)text.elementAt(3),(String)vector_file.elementAt(0),(String)vector_file.elementAt(1),(String)vector_file.elementAt(2));
}
catch (Exception e)
{
System.out.println("生成JSP文件出现错误!"+e);
System.out.println("错误位置:/servlet/com.sxztb.upload.uploadServlet");
}
//写文件结束,转到相应目录
getServletContext().getRequestDispatcher("/news/").forward(request,response);
}
catch(Exception e)
{
System.out.println("/servlet/com.sxztb.upload.uploadServlet出错"+e);
}
*******************************************************************************************************************上述的取得request中的表单中的每一个元素,可以不用迭代器 iterator.
List类中的List.size()取得多少个元素,
List类中的List.get(i)取得某个元素,
以上的这几行代码可以这样改!:
-------------------------------------------------
while (iter.hasNext())//表单有多个域
-------------------------------------------------
改:
for(int i=0;i<items.size();i++) //items是List对象
-------------------------------------------------
FileItem item = (FileItem) iter.next();
-------------------------------------------------
改
FileItem item = (FileItem) items.get(i);
aUpload.initialize(config,request,response);
aUpload.upload();
String title=aUpload.getRequest().getParameter("title");