Struts+Hibernate 做上传图片时的错误

项目中第一次做图片上传和下载功能过程>>> 也是刚参加工作不久,被分配一个需求是做图片的上传和下载。项目是基于SSH框架的,对于不熟悉struts2和hibernate框架的我的实现过程就开始了。 当然我是从页面做起,首先在原本写好的页面表单中,添加file类型的input输入框不用多说。 身份证正面照: <input id="identityA" name="identityA" type="file" 阅读详情

这个是userlist.jsp,当点击上传相册时提示一个错误。用的自己参考struts上传包写个一个上传方法。

 

 

<form action="fileUpload.do?user_id='${user.id }'" method="post" enctype="multipart/form-data">
<%
 User list = (User) request.getSession().getAttribute("user");
 if (list.getIs_admin() == 1)
 {
%>
<table width=500 border=1 align='center'>
 <tr bgcolor='#cccccc'>
  <td>登录名</td>
  <td>用户类型</td>
  <td>照片</td>
 </tr>
 <%
  UserService us = new UserService();
   for (User user : us.userlist())
   {
 %>
 <tr>
  <td><%=user.getLoginName()%></td>
  <td><%=user.getIs_admin() == 1 ? "Administrator"
       : "user"%></td>
  <td>  
  <a href="fileUpload.do?user_id=<%=user.getId() %>">上传相册</a>
  </td>
 </tr>
 <%
  }
 %>
</table>
</form>

 

下面的是UserListAction.java

 

if (user_id != null)
  {
   User user = (User) service.getById(Integer.parseInt(user_id));
   request.setAttribute("user", user);
   
   FileUpload upload = new FileUpload();
   upload.uploadByApacheCommonsFileupload(request, savePath); //此法是自己写的
   user.setName(upload.getParameter("name"));
   user.setLoginName(upload.getParameter("loginName"));
   Upload up = upload.getUploadedFile("photo");
   if (up != null)
   {
    Photo p = new Photo();
    p.setUser(user);
    p.setPath(up.getFile().getName());
    service.addPhoto(p);
    user.getPhoto().add(p);
    service.updateUser(user);
   }
  }

 

FileUpload

 

public void uploadByApacheCommonsFileupload(HttpServletRequest request,
   String saveDir) throws FileUpDownException
 {
  if (ServletFileUpload.isMultipartContent(request)) //当运行到此的时候抛出异常
  {
   // 准备工作
   File tempDir = new File(System.getProperty("java.io.tmpdir"));// 临时文件目录
   System.out.println(tempDir.getAbsolutePath());
   DiskFileItemFactory factory = new DiskFileItemFactory();
   factory.setSizeThreshold(1024 * 1024);// 缓存大小 字节
   factory.setRepository(tempDir);
   ServletFileUpload sfu = new ServletFileUpload(factory);
   sfu.setHeaderEncoding(encoding);

 

异常信息:

 

严重: Servlet.service() for servlet action threw exception
alpha.fileUpload.FileUpDownException: 表单格式不能支持文件上传
 at alpha.fileUpload.FileUpload.uploadByApacheCommonsFileupload(FileUpload.java:323)
 at action.UserListAction.execute(UserListAction.java:51)
 at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
 at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
 at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
 at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
 at org.apache.commons.chain.generic.LookupCommand.execute

Struts2文件上传与下载实战指南 Apache Struts2是一种用于构建Web应用程序的开源MVC框架。它基于Servlet API,提供了一种灵活的方式来创建动态网页。文件上传和下载是Web应用程序中常见的需求,Struts2框架通过其丰富的拦截器和插件机制,能够简洁地实现这些功能。在Struts2中,文件上传和下载的实现通常涉及拦截器、Action类和结果类型。本章将概述如何使用Struts2框架中的拦截器进行文件上传,并创建专门的Action类来处理文件下载。文件上传拦截器如fileUpload。 阅读详情

相关推荐

基于JSP+Struts2+Spring+MySQL的宠物网站开发实战与架构解析

Java Web开发是构建企业级应用的核心技术体系,其核心在于理解MVC架构模式如何将用户请求、业务逻辑与数据持久化分离。通过依赖注入、面向切面编程等原理,Spring框架实现了组件解耦与事务管理,而Struts2则通过拦截器机制集中处理请求控制。这些技术的组合为构建可维护、可扩展的Web应用提供了坚实基础,尤其在内容管理、电商平台及社区论坛等需要动态数据交互的场景中广泛应用。本文以宠物社区网站为例,深入探讨了如何整合JSP、Struts2、Spring与MySQL这一经典技术栈,并重点解析了用户认证安全与

weixin_34392435的博客 918

hibernate存取图片实例

一般网站在处理用户上传图片时通常采用两种策略:一是直接把图片存入数据库中的Blob字段;二是数据库中只存储图片的在服务器上的路径信息 ,图片存放在分门别类的文件中,使用的时候从数据库读取路径信息到页面img元素即可.在此不讨论两种方案的优劣,我只是写了个hibernate的例子来实现第一种策略.例子很简单,t_user表主要两个字段,name和photo,其中photo字段类型为Blob.在此例中

花非花 4923

Java Web毕业设计实战:基于JSP+Struts2+Spring+MySQL的宠物网站开发

Java Web开发是构建企业级应用的核心技术体系,其核心在于通过MVC架构实现业务逻辑、数据与展示的分离。Spring框架通过控制反转和依赖注入管理对象生命周期,实现组件解耦;Struts2作为控制器负责请求分发与处理;JSP则承担视图层渲染,结合MySQL完成数据持久化。这种分层架构的价值在于提升代码可维护性、可扩展性,是理解Web应用从请求到响应完整闭环的经典实践。在宠物领养、电商等业务场景中,此类技术组合能有效支撑用户管理、商品信息CRUD、订单流程等核心功能。本文以宠物网站为例,详细解析如何整合S

weixin_34375251的博客 459

hibernate blob读取图片问题

我的环境是mysql+hibernate3.2.6 读取图片 1 domain: 我使用的 Blob 类型 @Lob @Basic(fetch=javax.persistence.FetchType.EAGER) @Column(name="content",columnDefinition="MEDIUMBLOB NOT NULL") private Blob content; 2 action

sukyle的专栏 1481

Dify安装使用说明

dify可以说是一个功能不错的LLMOps,可以通过dify集中管理模型,可以通过界面创建AI应用,可以上传文档形成知识库,可以创建自定义工具(API),并可以对外提供API。相关功能类似Openai的GPTs或智谱的智能体,其他大厂的大模型也有类似功能,不过貌似只有dify是开源的。这就为个人本地部署AI应用提供了便利。

龙井茶的Sky 1万+

通信工程学习:什么是OLT光线路终端

OLT(光线路终端)是无源光网络(PON)的核心局端设备,负责光/电信号转换、数据处理、带宽分配及用户管理。具有高带宽、低损耗、高安全性和易维护等技术特点,广泛应用于家庭、企业及公共机构宽带接入。未来将向更高性能、智能化方向发展,结合SDN/NFV等新技术,提升网络服务质量。

limengshi138392的博客 4365

struts2+Hibernate 读取oracle blob 字段中的图片

之前存入数据库中的图片都是图片的链接,今天直接向数据库中存入图片,遇到很多问题:查阅了很多资料,看过的一篇资料是这样映射文,这样处理图片字段:private byte[] image; &lt;property name="image" type="oracle.sql.BLOB"&gt;              &lt;column name="IMAGE" /&gt;  &lt;/prope...

nano-dhh 1333

Geant4学习一:写一个简单程序

1、 基本介绍

ccwwNUAA的博客 7699

struts2上传图片到mysql数据库 实例_Struts2上传图片到Mysql数据库中,以及显示到页面...

数据库的创建:数据库名叫:csdn表名:savepictureDROP TABLE IF EXISTS `savepicture`;CREATE TABLE `savepicture` (`id` int(10) NOT NULL auto_increment,`picture` blob NOT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CH...

weixin_30187777的博客 173

① Django手把手从零开发个人博客-前言

手把手教你从零开始玩转手把手教你从零开始玩转Django,全面学习并了解django的运行机制、开发全流程及线上部署。Django,全面学习并了解django的运行机制、开发全流程及线上部署。 专栏介绍 本套教程遵循Django的设计思想,开门见山,快速切入主题,拒绝拖沓,在实战中学习每一个知识点,提高学习的趣味性以及个人成就感,并且能快速将所学运用到实际项目中。 将从零手把手带着你一步步完成博客的每一个功能,通过实现博客文章列表页、文章详情页、作者页面等功能来学习和了解django的视图查询模块相关知.

轻编程的博客 515

python基础之语言发展历史

博主简介:原互联网大厂tencent员工,网安巨头Venustech员工,阿里云开发社区专家博主,微信公众号java基础笔记优质创作者,csdn优质创作博主,创业者,知识共享者,欢迎关注,点赞,收藏。 目录一、前言二、发展历史1、Python是一种面向对象的解释型编程语言2、Python常被称为胶水语言3、Python由Guido开发4、Python连续多年入选编程语言TOP105、Python的发展历史三、总结 一、前言   由于Python语言的简洁性、易读性以及可扩展性,它在网络爬虫、数据分析、.

jiankang66的博客 3348

Struts2.0 (struts2 hibernate spring)文件上传 blob

最近在项目中第一次使用 struts2,在将文件上传到数据库(oracle9i)中时,出现了一个奇怪的问题,就是当上传的文件[color=darkred]比较小[/color]时(先这样说,因为没有查阅相关文档也没有测试这个值为多少),可以正常上传到数据库中,但当我上传了一个为300多K的图片是出现如下错误: [color=darkred]不允许的操作: streams typ...

江畔踏雪 170

4、教育数据挖掘:公共数据集与研究进展

本文综述了教育数据挖掘(EDM)领域的研究进展与公共数据集应用情况。从2013年至2020年,EDM在电子学习系统、大规模开放在线课程(MOOC)等方面快速发展,涵盖了多种研究任务、工具与方法。文章梳理了UCI、Mendeley、DataShop等平台的公开数据集,分析了其特点与局限性,并介绍了KDD Cup、Kaggle等竞赛中的教育数据集及其评价指标。同时,探讨了多模态、心理行为等特色数据集的应用场景。最后指出当前EDM面临的主要挑战是缺乏系统性数据集综述、数据预处理复杂及可重复性不足,呼吁加强数据共享

rgv2345678的博客 171

运用struts2、hibernate、spring中的常见错误

学习应用了struts和hibernate、spring进行javaweb开发已经一个多月了,在做招聘信息的小项目中出现过很多报错,现在把这些报错当作笔记记载下来,其中一些的后台报错没有记录下来,只好用语言描述一下。下面就是我整理的错误: 1. 笔记:在用hibernate时,用现成的表的时候,表中的字段必须都包括,否则会报错(这个问题在后期的spring集成中没有出现,对数据库中表操作 ...

iteye_20696的博客 139

fast-lio系列改进版本

2.回环检测的优化结果,更新到FAST-LIO2的当前帧位姿中,幷进行ikdtree的重构,进而更新submap。其它的效果还不清楚,实测lio部分稳定性很好。用fast-lio_slam就很稳定。融合了fast-lio2和sc-pgo,两部分分开运行,SC-PGO从FAST-LIO2节点获取里程计和激光雷达点云主题。的作者kim在FAST-LIO2的基础上,添加SC-PGO模块,通过加入ScanContext全局描述子,进行回环修正,SC-PGO模块与FAST-LIO2解耦,非常方便,很优秀的工作。

z1872385的博客 3189

零基础入门simulink仿真--通信领域的调制解调技术:基于Simulink的PM信号调制与解调仿真建模示例

PM的基本原理是将基带信号(如语音或音乐信号)加载到高频载波信号的相位上。通过改变载波的瞬时相位,可以实现信息的传输。PM的优点包括抗噪声能力强、频谱利用率较高等,但其解调过程相对复杂。通过Simulink,我们可以通过模块化的建模方式实现PM信号的调制和解调过程,并观察信号在信道中的传输效果。通过本指南,我们介绍了如何基于Simulink搭建一个完整的PM信号调制与解调仿真模型,并进行仿真和性能评估。背景介绍:理解PM信号调制与解调的基本原理及其应用。所需工具和环境:列出进行PM仿真所需的工具和环境。

amy_mhd的博客 605

使用Struts2上传图片存取到Mysql中并读取出来显示在页面上

  使用Struts2上传图片存取到Mysql中并读取出来显示在页面上 李顺利 Google 标签: 李顺利;Struts;图片;存取;存入;显示;Mysql;数据库;Blob 索引 索引... 1 关键词... 1 序... 2 准备工作... 2 开发环境... 3 流程和主要代码... 3 创建数据库... 3 整合SSH.. 4 主要代码(知识)... 5 程序截图... 12 分享和下载...

李顺利 356

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

使用Hibernate和Struts向数据库中保存、读取并显示图片

  最近做了一个小工具给朋友用,需要将图片保存到数据库中,由于朋友只是在单机使用,也就是服务器/客户端是同一台机器,所以就忽略文件上传部分,如果用在传统B/S架构中,需要添加文件上传功能,否则会出错,好了,下面总结一下具体步骤: 一、向数据库中保存图片   在JSP页面中添加文件选择控件:   照片: &lt;html:file property="picture" onchange...

bolan392的博客 277

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

hibernate访问mysql没有响应_Struts2+hibernate + mysql C3P0连接池 导致写数据库无反应(死机)...

我学hibernate刚学不久,最近用s2h+mysql做了个网站,买了个jsp的空间,发布到空间去了之后,第二天访问却访问不了,一查才知道,hiberante默认的连接数据库的时间有个限度,如果在这...我学hibernate刚学不久,最近用s2h + mysql做了个网站,买了个jsp的空间,发布到空间去了之后,第二天访问却访问不了,一查才知道,hiberante默认的连接数据库的时间有个限度...

weixin_36006790的博客 187

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

S2SH整合以及图片上传(5)之struts2的搭建

    经过前面一番操作之后,我们已经把spring和hibernate整合搭建完毕。    接下来,我们对最后一个框架struts2进行搭建。    详细步骤如下。    第一步,我们依然导入相关的jar包到新建的web项目的/TestUpload/WebRoot/WEB-INF/lib目录中:        第二步,我们在项目的src目录下新建struts2的核心配置文件struts.xml:...

道若空明 344

java架构搭建(六)--struts2上传和下载文件(使用到拦截器)

我把这篇功能放到了java架构搭建这个系列中。 其实struts2的上传和下载和本系列关系不大,但是在架构搭建中,上传和下载是必然会遇到的。 而且能封装的自然封装,这样调用或者给其他程序员提供参考代码,将会大大缩短开发时间。 以前我写过上传和下载的功能,当时使用commons-fileupload-xxx.jar实现的。 struts2的上传和下载其实也是对这个包功能的封装,而且做得很好,

1914

SSH(Struts2 + Hibernate + Spring)嵌入 KindEditor(KE)

1、 kindeditor 灌水 (下载地址,demo) 经过两天的折磨,又源代码,又官网学习,又网络搜索的,终于成功的嵌入KindEditor了。 KindEditor确实是个不错的富文本编辑器,纯JS,比起JQuery写的,夸浏览器更佳。 所以在多种富文本编辑器中,死死认定了KE就是我要的~~ KE下载http://www.kindsoft...

126

客户管理模块(文件上传-图片/删除-修改客户/条件查询客户)| CRM客户关系管理系统项目实战三(Struts2+Spring+Hibernate)解析+源代码

struts2文件上传代码实现上传文件图片 创建类随机生成文件名称 目录的分离 控制上传文件大小和格式 以及设置错误回显信息 客户的修改操作(放入栈当中的两种方式,以及获取值的两种方式) 修改数据的时候的回显数据,以及设置该图片的时候,删除原有的图片,添加新的图片,不改图片的时候,不修改图片 条件上回显数据

程序员猫爪 1201

图片以二进制的格式保存到数据库

项目用的是 struts2+spring+hibernate+ibatis的框架 一、图片从页面到后台的保存 1、页面相关代码 前台页面用的是extjs4实现的,上传的是图片格式     {name:'imgFile1',columnWidth:0.666,xtype:'filefield',buttonText:'浏览',regex:/^(.+)(.gif|.GIF|.png|.

风中浮柳的专栏 1085

关于文件上传校验时浏览器不兼容问题(结合struts1+spring+hibernate)

方式一:支持goole、firefox、IE6版本,IE6以上版本需要对浏览器进行安全设置,

lv_shijun的专栏 1784
上一篇: 最新最全的struts jar 包 官网下载地址!!!
下一篇: 101条经典幽默的计算机编程名言
JavaAlpha
博客等级 码龄18年 910粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值