Java Struts图片上传至指定文件夹并显示图片功能
作者:Junsept 发布时间:2023-03-15 10:48:51
标签:java,struts,上传图片
继上一次利用Servlet实现图片上传,这次利用基于MVC的Struts框架,封装了Servlet并简化了JSP页面跳转。
JSP上传页面
上传一定要为form加上enctype="multipart/form-data"
,表示提交的数据时二进制的
并且必须是method="post"
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<s:form action="login" method="post" enctype="multipart/form-data">
<s:file name="img" label="头像" />
<s:submit value="上传" />
</s:form>
<!-- <form action="login" method="post" enctype="multipart/form-data">
头像:<input type="file" name="img"></input>
<input type="submit" values="上传"></input>
</form> -->
</body>
</html>
struts.xml配置(maven项目放在resources)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.multipart.maxSize" value="20480000"/> 设置文件上传最大值
<package name="struts2" extends="struts-default">
<action name="login" class="com.controller.TestStruts" method="logintest">
<result name="fail">/fail.jsp</result>
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
TestStruts.java控制类
一定要提供三个属性
File img;
String imgFileName;
String imgContentType;
然后为这3个属性提供getter setter方法
package com.controller;
import java.io.File;
import java.io.IOException;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class TestStruts extends ActionSupport{
private File img;
private String imgFileName;
private String imgContentType;
public File getImg(){
return img;
}
public String getimgFileName(){
return imgFileName;
}
public String getImgContentType(){
return imgContentType;
}
public void setImg(File img){
this.img = img;
}
public void setImgFileName(String imgFileName){
this.imgFileName = imgFileName;
}
public void setImgFileContentType(String imgContentType){
this.imgContentType = imgContentType;
}
@SuppressWarnings("unchecked")
public String logintest() throws IOException{
Map p = ActionContext.getContext().getSession();
p.put("imgFileName", imgFileName);
File f = new File("D://imagebystruts");
if (!f.exists()) {
f.mkdir();
}
FileUtils.copyFile(img, new File(f, imgFileName));
return "success";
}
}
Tomcat中server.xml文件配置虚拟路径
<Context docBase="D:/imagebystruts" path="/imagebystruts" reloadable="true"/>
<Context docBase="SSHTest" path="/SSHTest" reloadable="true" source="org.eclipse.jst.j2ee.server:SSHTest"/></Host>
success.jsp显示图片
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>success</title>
</head>
<body>
<h1>成功</h1>
<body>
<img src="/imagebystruts/${imgFileName}">
</body>
</body>
</html>
总结
以上所述是小编给大家介绍的Java Struts图片上传至指定文件夹并显示图片功能网站的支持!
来源:http://www.cnblogs.com/Junsept/p/7337530.html?utm_source=tuicool&utm_medium=referral


猜你喜欢
- 1、@Component 是用在类上的@Component public class Student { private String na
- Web基础和HTTP协议┌─────────┐┌─────────┐
- 了解内存的原理1、内存是由 Key 和 Value 组成,Key 是内存地址、Value 是存储的数据;2、Key:是一个32位长度的二进制
- java 中二分法查找的应用实例二分查找的前提是:数组有序 注意:mid的动态变化,否则出错!!! 实例代码:publ
- 我就废话不多说了,大家还是直接看代码吧~//执行的是删除信息的操作 String a=request.getParameter("
- 本文详细的介绍了Spring组件的实现步骤,分享给大家,具体如下:背景Spring 框架提供了许多接口,可以使用这些接口来定制化 bean
- HttpClient是一个客户端的HTTP通信实现库。HttpClient的目标是发送和接收HTTP报文。Http协议的重要性相信不用我多说
- 先给大家展示下效果图,如果感觉不错,请参考实现思路详解Android开发中关于短息验证码的设计层出不穷,越来越多的应用为了更好的提高软件的安
- import java.io.IOException;import javax.xml.parsers.*;import javax.xml
- 写在前面现在,越来越多的App里面使用了模糊效果,这种模糊效果称之为高斯模糊。大家都知道,在Android平台上进行模糊渲染是一个相当耗CP
- 我在做毕设的时候采用shiro进行登录认证和权限管理的实现。其中需求涉及使用三个角色分别是:学生、教师、管理员。现在要三者实现分开登录。即需
- 实例如下所示:public class JsonExtracter { public static void main(String[] a
- 这篇文章主要介绍了Spring框架实现AOP添加日志记录功能过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习
- using System;using System.Collections.Generic;using System.ComponentMo
- 我就废话不多说了,大家还是直接看代码吧~package com.jalor;import java.util.ArrayList;impor
- 本文实例总结了C#实现按照指定长度在数字前补0方法。分享给大家供大家参考。具体分析如下:这里分析了C#按照指定的长度在数字前补0的两种方法例
- 举例说明自定义C++异常处理的实例例1:自定义一个继承自excepton的异常类myExceptionC++标准中,定义在<stdex
- 点击按钮返回顶部,直接上代码吧布局文件<LinearLayout xmlns:android="http://schemas
- import java.io.ByteArrayOutputStream;import java.io.InputStream;//从输入流
- 很多情况下sql不好解决的多表查询,临时表分组,排序,尽量用java8新特性stream进行处理使用java8新特性,下面先来点基础的Lis