`
小小虾
  • 浏览: 13198 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JSP使用MultipartRequest类上传图片报错的解决

阅读更多

目前在做一个jsp上传图片文件时报错,报错信息如下,请参考。。。

 

严重: Servlet.service() for servlet GoodsInfoServlet threw exception

java.io.IOException: Posted content type isn't multipart/form-data

at com.oreilly.servlet.multipart.MultipartParser.<init>(MultipartParser.java:166)

at com.oreilly.servlet.MultipartRequest.<init>(MultipartRequest.java:222)

at com.oreilly.servlet.MultipartRequest.<init>(MultipartRequest.java:173)

at com.zuxia.servlet.GoodsInfoServlet.FileUpLoad(GoodsInfoServlet.java:125)

at com.zuxia.servlet.GoodsInfoServlet.doPost(GoodsInfoServlet.java:90)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at com.zuxia.filter.CharactEncodingFilter.doFilter(CharactEncodingFilter.java:23)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)

at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861)

at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)

at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584)

at java.lang.Thread.run(Thread.java:619)




最后参考了一下网上别人做的jsp上传下载图片时,看到一个熟悉的东西,就是form表单的enctype属性。在我们使用MultipartRequest进行文件上传下载时,必须将enctype属性的值设置为:multipart/form-data,如我的表单为:<form action="GoodsInfoServlet?op=add"  method="post" onSubmit="return submit_form();" enctype="multipart/form-data">
这时上传和下载才能成功。

下面一段是从网上找到的关于form表单的enctype属性的解释:
html的form表单中Enctype属性的用法:
form表单中的Enctype属性指定将数据发回到服务器时浏览器使用的编码类型。
下面是它的取值说明:
multipart/form-data: 窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分。
application/x-www-form-urlencoded: 窗体数据被编码为名称/值对。这是标准的编码格式。
text/plain: 窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。

表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是 application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整 的传递文件数据,进行下面的操作.
enctype="multipart/form-data"是上传二进制数据过去。
form里面的input的值以2进制的方式传过去,所以request就得不到值了。 也就是说加了这段代码,用request就会传递不成功,
分享到:
评论

相关推荐

    多文件上传功能源码MultipartRequest.

    在`servlet`目录下,可能有实现了文件上传功能的Servlet类,而`multipart`目录可能包含了`MultipartRequest`类的实现以及其他相关辅助类。 总的来说,`MultipartRequest`是Java Web开发中实现多文件上传的关键工具...

    MultipartRequest多文件上传

    MultipartRequest 批量上传文件,进行了一下修改 1、自定义文件上传路径 2、自定义文件名称 3、返回文件后缀 4、返回文件存储路径

    文件上传处理的实现包_jsp

    总的来说,这个“文件上传处理的实现包_jsp”为基于JSP的文件上传提供了一种实用的解决方案,通过`multipartRequest`类,开发者可以方便地处理用户的文件上传请求,同时避免了许多与文件上传相关的复杂性。...

    jsp里面用cos进行文件上传

    Cos组件为JSP开发者提供了一个强大而灵活的文件上传解决方案。它不仅易于集成,而且由于是开源项目,开发者可以根据自己的需求进行定制化开发。对于初学者而言,通过学习Cos的使用方法也能更好地理解文件上传的基本...

    如何解决在jsp页面上导入.xls文件报错问题

    在开发Java Web应用程序时,尤其是使用JSP技术处理用户上传文件的功能时,可能会遇到导入`.xls`文件报错的问题。这种错误通常是由于请求处理不当或文件上传配置不正确导致的。以下是一些解决此类问题的步骤和建议: ...

    针对struct2下ueditor jsp1.3.5版本上传图片的配置

    在使用Structs2框架时,与UEditor 1.3.5 JSP版本集成上传图片时,可能会遇到“未找到上传文件”的错误。这是因为Struts2的拦截器在处理请求时,会重新封装`HttpServletRequest`对象,导致上传文件的相关信息丢失。...

    jsp源码上传下载手机电影下载-mobiledy

    使用该类可以轻松地获取到上传文件的名称、类型等信息,并将其保存到服务器上的指定位置。 - **配置文件上传限制**:开发者可以通过设置最大文件大小、最大请求大小等参数来控制文件上传行为。 - **处理文件名乱码...

    JSP实现上传下载文件的代码

    然后在对应的JSP(如upload.jsp)中,我们需要实例化一个`MultiPartRequest`对象,处理请求中的文件部分。不过,这里我们将使用SmartUpload库,这是一个轻量级的文件上传组件,能简化文件上传操作: ```jsp *" %&gt; ...

    利用 Oreilly MultiPartRequest 解決 上傳檔案 的問題

    Oreilly MultiPartRequest类就是用来解析这样的请求,从中提取出文件和其他非文件数据。 1. **安装与导入**:在使用Oreilly MultiPartRequest之前,你需要将其添加到你的项目依赖中。这可能通过Maven或Gradle完成,...

    jsp程序设计ppt

    同时,还会介绍如何利用MultipartRequest处理文件上传。 **第6章 JSP中使用数据库** JDBC(Java Database Connectivity)是Java连接数据库的标准接口,JSP通过JDBC可以方便地访问数据库。这一章将讲解如何在JSP中...

    Android应用源码之安卓图片上传和文件上传带jsp服务端源码.zip

    - **MultipartRequest**:如使用Volley库,可以利用其内置的MultipartRequest类简化多部分上传。 通过这个源码,开发者可以深入理解Android应用如何与服务器交互进行文件上传,同时了解JSP如何处理这些请求,对于...

    jsp的ppt课件

    这一章将教授如何使用JSP和Servlet API来读取、写入和操作文件,包括文件上传的处理流程和MultipartRequest类的使用。 **第6章 在JSP中使用数据库**: 数据库集成是Web应用的重要部分。这一章将介绍如何使用JDBC...

    jsp 上传 下载 验证码

    - **随机数生成**: 数字、字母和字母加数字的验证码通常通过生成随机字符串实现,可以使用Java的`Random`类或`SecureRandom`类,结合字符数组来确保生成的验证码具有足够的复杂性。 - **图像验证码**: 验证码通常...

    文件上传jsp,servlet编写

    在这个“文件上传jsp,servlet编写”的项目中,开发者使用了这两种技术来实现一个文件上传的功能。下面将详细介绍JSP和Servlet在文件上传中的应用以及相关知识点。 **JSP(JavaServer Pages)**: JSP是一种基于...

    cropZoom+jspsmartupload

    "cropZoom+jspsmartupload"就是一个针对这种情况的解决方案,它结合了jQuery_cropZoom插件和jsp_smartupload技术,实现了类似Flash效果的上传与裁剪功能。 首先,jQuery_cropZoom是一款JavaScript插件,用于在网页...

    MultipartRequest:a volley custom request to support file upload Volley文件上传

    截击自定义请求以支持文件上传 如何使用: MultipartRequestParams params = new MultipartRequestParams(); params.put("userName",username); params.put("myfiles",files); getVolleyRequestQueue().add(new ...

    jspSmartUpload.jar

    JSP SmartUpload是一款强大的文件上传组件,它为Java Web应用程序提供了方便、高效且易用的文件上传解决方案。本文将深入探讨JSP SmartUpload.jar的核心原理及其与SQLServer2000数据库的集成,以实现高效稳定的文件...

    fileUp.zip_jspSmartUpload

    本文将详细讲解如何使用Java实现文件上传,重点介绍标题中提到的"jspSmartUpload"以及另外两种常见的方式:O'reilly的cos组件和Apache的commons-FileUpload。 1. **O'Reilly的cos组件**: cos,全称为...

Global site tag (gtag.js) - Google Analytics