上传图片代码如下,首先是页面:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index1.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必须加上 enctype="multipart/form-data"
否则则会有报错的情况发生,action类里新建一个demo对象,对应数据库里一条新的记录
大概方法就是这样,如果有需要的话还可以再扩展,图片上传代码完毕
<form id="form1" name="form1" action="text.do" method="post" enctype="multipart/form-data">
<input type="file" id="userImage" name="userImage">
<input type="text" id="mytext" name="mytext">
<input type="submit" value="确定">
</form>
</body>
</html>
传递至textAction这个类中
我用的是springside的框架,这个框架中的action默认执行的方法是list,其它不变
下边是action类
package com.mytext.action;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import org.apache.commons.io.output.ByteArrayOutputStream;
import org.springframework.beans.factory.annotation.Autowired;
import org.springside.modules.web.struts2.CRUDActionSupport;
import com.mytext.entity.Demo;
import com.mytext.service.DemoServices;
import com.sun.xml.internal.ws.util.ByteArrayBuffer;
@SuppressWarnings("serial")
public class TextAction extends CRUDActionSupport<Demo>{
@Autowired
private DemoServices demoServices;
private Demo demo;
private String mytext;
private File userImage;
@Override
public String delete() throws Exception {
// TODO Auto-generated method stub
return null;
}
@Override
public String list() throws Exception {
if(userImage==null)
{
return "try";
}
prepareModel();
try {
BufferedImage tt = ImageIO.read(userImage);
demo.setImage(toByte(tt));
demo.setName(mytext);
demoServices.save(demo);
} catch (Exception e) {
System.out.println("保存失败");
return "try";
}
return "try";
//demoServices.getAllDemo();
}
//转化为流
private byte[] toByte(BufferedImage image) throws IOException
{
ByteArrayOutputStream cc = new ByteArrayOutputStream();
ImageIO.write(image, "jpg", cc);
return cc.toByteArray();
}
@Override
protected void prepareModel() throws Exception {
// TODO Auto-generated method stub
demo = new Demo();
}
@Override
public String save() throws Exception {
// TODO Auto-generated method stub
return null;
}
public Demo getModel() {
// TODO Auto-generated method stub
return demo;
}
public File getUserImg() {
return userImage;
}
public void setUserImg(File userImage) {
this.userImage = userImage;
}
public String getMytext() {
return mytext;
}
public void setMytext(String mytext) {
this.mytext = mytext;
}
public File getUserImage() {
return userImage;
}
public void setUserImage(File userImage) {
this.userImage = userImage;
}
}
文中加红的为保存方法,是springside独有的一个东西,不必深究,可跟据自己的框架来保存对象至数据库中
下边是我数据库的实体类
package com.mytext.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* Demo entity.
*
* @author MyEclipse Persistence Tools
*/
@Entity
@Table(name = "demo")
public class Demo extends IdEntity implements java.io.Serializable
{
private String name;
private byte[] image;
private String shouming;
public Demo() {
}
public Demo(String name, byte[] image) {
this.name = name;
this.image = image;
}
@Column(name = "name", length = 15)
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
@Column(name = "image")
public byte[] getImage() {
return this.image;
}
public void setImage(byte[] image) {
this.image = image;
}
@Column(name="shouming", length = 225)
public String getShouming() {
return shouming;
}
public void setShouming(String shouming) {
this.shouming = shouming;
}
}
继承了一个共用的类,用于id主键生成
package com.mytext.entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
//所有实体类的基类,实现id的自增长
@MappedSuperclass
public class IdEntity {
private Long id;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
我用的是mysql数据库,测试己成功,action方法中继承的是springside框架中的action类,不用这个框架的不必深究,
以下是在jsp页面中读出图片的方法
先是jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!-- 注意标签库的异入>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>jquery编辑器实例</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">
-->
<link rel="stylesheet" href="${ctx }/edit/common.css" type="text/css" media="screen" />
<script type="text/javascript" src="${ctx }/edit/jquery/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="${ctx }/edit/xheditor.js"></script>
</head>
<body>
<!-- jquery的编辑器试验己成功,能够成功写入数据库,能够成功在页面上显示出来 -->
一般模式的edit
<form method="post" action="edit.do">
<h3>xhEditor demo1 : 默认模式</h3>
xheditor(默认完全):<br />
<textarea id="elm1" name="elm1" class="xheditor" rows="12" cols="80" style="width: 80%">
<p>请输入信息</p>
</textarea>
<br>
<input type="submit" value="试验中的jquery编辑器">
</form>
<!-- 从数据库里边读出一个图片 至此,图片上传和显示制做完毕-->
开始从数据库里边读出来一个图片<br>
<img src="<s:url action="edit!getUserImgFromByte.do">
<s:param name="id" value="5"></s:param>
</s:url>" height="300px" width="300px">
</body>
</html>
红色部分为显示图片,可人为控制图看大小,上边的是一个类似于fck的jquery编辑器
action方法
package com.mytext.action;
import java.io.IOException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springside.modules.web.struts2.CRUDActionSupport;
import org.springside.modules.web.struts2.Struts2Utils;
import com.mytext.entity.Demo;
import com.mytext.service.DemoServices;
public class EditAction extends CRUDActionSupport<Demo>{
/**
*
*/
@Autowired
private DemoServices demoSdrvices;
private Long id;
private String elm1;
private Demo demo;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Override
public String delete() throws Exception {
// TODO Auto-generated method stub
return null;
}
@Override
public String list() throws Exception {
id=1L;
getModel();
demo.setShouming(elm1);
demoSdrvices.save(demo);
return "showedit";
}
@Override
protected void prepareModel() throws Exception {
// TODO Auto-generated method stub
}
@Override
public String save() throws Exception {
// TODO Auto-generated method stub
return null;
}
public Demo getModel() {
if(id==null)
{
demo=new Demo();
}
else
{
demo = demoSdrvices.get(id);
}
return demo;
}
public String getElm1() {
return elm1;
}
public void setElm1(String elm1) {
this.elm1 = elm1;
}
public Demo getDemo() {
return demo;
}
public void setDemo(Demo demo) {
this.demo = demo;
}
public String getUserImgFromByte() throws Exception {
getModel();
HttpServletResponse response = Struts2Utils.getResponse();
ServletOutputStream out = null;
try {
response.setContentType("image/jpeg");
out = response.getOutputStream();
out.write(demo.getImage());
out.flush();
} catch (Exception e) {
} finally {
try {
if (null != out)
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
}
红色部分为从数据库读图片代码
转载使用请注明出处!写的时候不知道,后来才发现代码内部不能加红!!!
真屎!
读本人博客代码如有任何疑问或代码不能执行,请速联系本人
zhang7789@yahoo.com.cn
分享到:
相关推荐
上传图片时,选择图片之后显示在页面上,现成的代码,直接使用即可
**JSP SmartUpload上传并显示图片新闻示例** 在Web开发中,经常需要处理用户上传文件的功能,尤其是图片。`JSP SmartUpload`是一个强大的Java Servlet组件,它简化了文件上传的过程,支持多文件上传、文件大小限制...
在JavaServer Pages (JSP) 中实现图片上传并立即显示是一项常见的需求,尤其在Web开发中,例如用户头像上传、商品图片展示等场景。这个功能涉及到文件上传、图像处理和动态网页显示等多个技术环节。以下将详细讲解...
在JSP(JavaServer Pages)中,显示本地图片预览是一项常见的需求,特别是在网页开发中。JSP是一种基于Java的动态网页技术,它允许开发者在HTML、XML或其他标记语言中嵌入Java代码,以实现服务器端的数据处理和动态...
本教程将详细讲解如何在JSP页面上正确地展示一排图片,这对于构建一个视觉吸引人的网站至关重要。我们将探讨相关的HTML、CSS以及JSP语法,以确保图片的排列美观且响应式。 首先,我们需要了解HTML的基础知识,它是...
在本文中,我们将深入探讨如何使用Servlet和JSP实现一个简单的图片上传并显示的功能。Servlet是一种Java编程技术,常用于扩展服务器的功能,处理HTTP请求,而JSP(JavaServer Pages)则是一种动态网页技术,可以方便...
本主题将深入探讨如何使用JSP和Servlet来实现一个图片上传功能,并将图片数据存储到Oracle数据库中。 首先,我们需要理解JSP和Servlet的角色。JSP是用于创建动态内容的视图层技术,而Servlet则是Java编写的应用程序...
JSP上传图片并裁切及放大显示,常用的JSP程序,看到有不少的图片上传、缩放及裁切程序,手痒就写了个,网上见的多的都是ASP/ASP.NET、php的,还没有发现有JSP的,写时候参数程序比较少,因此程序并不完善,只是实现...
综上所述,实现"jsp上传图片并生成缩略图"的过程涉及到文件上传处理、图片的读取与缩放、文件存储以及错误处理等多方面技术。通过合理的设计和选用合适的工具库,可以在JSP中有效地实现这一功能。在实际开发中,还...
"JSP文件上传 支持进度条显示"这个项目是针对JSP环境设计的一个AJAX Web上传程序,它允许用户上传大文件(如单个文件100M),并具有文件上传进度条的可视化功能。以下将详细解析这个项目的知识点: 1. **JSP(Java...
以上就是使用JSP和Tag实现上传并显示图片功能的详细步骤。这个过程涉及到前端交互、后端处理、自定义标签的创建以及服务器配置,对于理解和实践Web开发中的文件操作和自定义标签机制非常有帮助。
本文将详细讲解如何实现一个基于JSP的图片上传功能,并将图片路径存储到MSSQL2000数据库中的技术要点。 首先,我们需要理解JSP(JavaServer Pages)的角色。JSP是一种动态网页技术,它允许开发者在HTML页面中嵌入...
在本文中,我们将深入探讨如何使用JSP与jspsmartupload控件将图片上传到数据库。jspsmartupload是一款强大的JSP文件上传组件,能够帮助开发者处理用户通过表单提交的多个文件。以下是对这个技术栈的详细解析: 1. *...
下面将详细介绍如何在JSP中实现图片上传并显示的过程。 一、文件上传原理 在JSP中,文件上传主要依赖于HTTP协议的多部分/混合内容类型(multipart/form-data)。这种类型允许在一个表单中提交多个数据部分,其中...
通过这两个实验,学生不仅学会了如何使用common-fileupload组件实现图片上传,还掌握了如何在服务器端读取并显示这些图片。此外,实验二还进一步介绍了如何将图片数据保存到数据库中,并展示了如何对这些数据进行...
这个场景下,"一个jsp中上传图片并预览的效果"是一个常见的功能需求,它允许用户在正式提交之前查看上传图片的效果,以确保图片质量符合预期。以下是对这个功能的详细解释: 首先,JSP(JavaServer Pages)是Java的...
在JSP中实现图片上传和缩略图显示是一项常见的需求,尤其在开发Web应用程序时。JSP(JavaServer Pages)是一种动态网页技术,允许我们直接在HTML中嵌入Java代码来处理服务器端逻辑。在这个场景中,我们使用了一个名...
总结来说,"SWFUpload图片上传并显示javaee+jsp版"项目结合了SWFUpload的异步上传功能、Struts的业务处理能力和JSP的动态页面渲染,提供了一个完整的图片上传和显示解决方案。开发者可以利用这个项目快速搭建起自己...
在本文中,我们将深入探讨如何使用JSP和jspsmart组件来实现图片上传及生成缩略图的功能。jspsmart组件是一个强大的文件上传工具,它提供了便捷的API用于处理文件上传,包括验证文件类型和大小,以及错误处理。 首先...
在这个“JSP源码,图片上传,进度条,JSP图片上传实例”的主题中,我们将深入探讨如何使用JSP进行图片上传,并结合进度条展示上传进度。 首先,图片上传功能是网站或应用程序中常见的一种交互需求。用户可以通过这种...