求教一个简单的文件上传问题 表示困扰很久了

Q蛋黄酱 Q蛋黄酱 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
最近在做一个企业级java的上机实验

实现文件的上传

期间遇到了一个问题,也不知道是哪儿出错了 麻烦大神们给指点指点

xml代码


<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>fileupload</servlet-name>
<servlet-class>com.cugb.java.fileupload</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>fileupload</servlet-name>
<url-pattern>/fileupload</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>


然后是index.jsp里的代码

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>

<body>

<form action="fileupload" method="post" enctype="Multipart/form-data">
username:<input type="text" name="usename"> <br/>
Choose a file:
<input type="file" name="file1"><br>
<input type="submit" value="submit">



</form>
</body>
</html>



Servlet里的代码 fileupload.java'

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

DiskFileItemFactory dfu =new DiskFileItemFactory();

String path=request.getRealPath("/upload");
dfu.setRepository(new File(path));

dfu.setSizeThreshold(1024*1024);

ServletFileUpload upload=new ServletFileUpload(dfu);

try{
List<FileItem> list=(List<FileItem>)upload.parseRequest(request);
for(FileItem item : list)
{
String name=item.getFieldName();
if(!item.isFormField());
{
String value=item.getName();
int start=value.lastIndexOf("\\");

String filename=value.substring(start+1);

request.setAttribute(name, filename);
item.write( new File(path,filename) );
}
}
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (Exception e) {
// TODO Auto-generated catch block

//e.printStackTrace();
}
request.getRequestDispatcher("index.jsp").forward(request, response);
}


发布到tomcat上都是没问题的 就是点击提交的时候 报错 我也不知道是哪儿错了

exception

javax.servlet.ServletException: Servlet execution threw an exception


root cause

java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:191)
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:350)
org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
com.cugb.java.fileupload.doPost(fileupload.java:88)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


root cause

java.lang.ClassNotFoundException: org.apache.commons.io.output.DeferredFileOutputStream
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:191)
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:350)
org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
com.cugb.java.fileupload.doPost(fileupload.java:88)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


note The full stack trace of the root cause is available in the Apache Tomcat/6.0.13 logs.






希望各位热心的大神给看看 困扰很久了
...全文

相关推荐

文件上传报错Malformed input?手把手教你解决OFD文件上传乱码问题

本文深度解析了OFD文件上传时出现的Malformed input报错问题,从字符集原理到多环境解决方案提供了详细指南。通过分析Java字符处理机制、容器环境特殊性,并给出六种针对性解决方案,帮助开发者彻底解决文件上传乱码问题,提升系统稳定性。

AI troll 大师

WebUploader文件上传组件全面解析与应用

在现代Web应用中,文件上传组件是不可或缺的功能之一。它允许用户上传图片、文档、视频等多媒体资源,对于实现表单数据提交、数据共享和内容管理至关重要。文件上传组件不仅需要满足基本的上传需求,还应提供良好的用户体验和高效的性能。WebUploader 提供了多种方式来展示上传进度,包括百分比、进度条、时间估计等。在UI方面,开发者可以完全自定义进度显示的样式,以适应不同的网页设计。进度信息是通过onProgress事件来传递的,开发者可以监听这个事件,并获取当前文件的上传进度,然后更新到界面上。

Clown爱电脑

前端开发组件示例源码_f1b6a91d详解

前端开发组件示例源码_f1b6a91d,内容包含源码/脚本与使用说明文档,结构清晰、注释完整,适合学习参考与二次开发,下载解压即可查看。

鱿鱼助手

前端开发基于history.js的HTML5与HTML4浏览器兼容方案:单页应用无刷新历史状态管理技术实现-Gjl4Gf1792158475

内容概要:本文系统介绍了如何利用history.js实现单页应用(SPA)在HTML5c与HTML4浏览器间s草错发的无缝历史状态管理。通过封装原生History API并在不支持的浏览器中自动降级为哈希路由,history.js解决了因浏览器兼容性导致的后退按钮失效、URL混乱等问题。文章详细讲解了其核心机制,包括状态对象管理、自动模式切换(HTML5 pushState vs HTML4 哈希)、状态数据持久化以及针,对Safari、IE等浏\览器的兼容性修复方案,并提供了从入门到实战的完整示例,涵盖初始化、事,件监听、页面加载及性能优化技巧。;Gjl4Gf1792158475 www.gblp.net www.gsctlq.com gezhixq.cn www.greendalian.com wap.gxqnm.com

2601_97196179

前端开发基于history.js的HTML5与HTML4浏览器兼容方案:单页应用无刷新历史状态管理技术实现-5Z6jeSqI1792158476

内容概要:本文系统介绍了如何利用history.js实现单页应用(SPA)在HTML5c与HTML4浏览器间s草错发的无缝历史状态管理。通过封装原生History API并在不支持的浏览器中自动降级为哈希路由,history.js解决了因浏览器兼容性导致的后退按钮失效、URL混乱等问题。文章详细讲解了其核心机制,包括状态对象管理、自动模式切换(HTML5 pushState vs HTML4 哈希)、状态数据持久化以及针,对Safari、IE等浏\览器的兼容性修复方案,并提供了从入门到实战的完整示例,涵盖初始化、事,件监听、页面加载及性能优化技巧。;5Z6jeSqI1792158476 sdhmgggw168.com www.shangliangwangye.com www.sdbing.net migu.blsxex.abxlbz.sc.cn www.safespeed.net.cn

2601_97196179
评论 3
收藏 已收藏
分享
返回顶部
Q蛋黄酱
Web 开发 81,108 成员 341,721 内容