研究了2天,终于利用STRUTS2 自带的唯一不重名的方法 实现了修改上传文件名的方法。现在和大家分享一下~~!
首先加入相应的JAR 包,我就不用多说了吧!
先从WEB.xml 配置开始说吧:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
2, struts.xml的配置:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- <constant name="struts.objectFactory" value="spring"/>-->
<constant name="struts.i18n.encoding" value="GBK"/>
<package name="upload1" extends="struts-default">
<action name="upload" class="org.example.action.Upload" method="upload" >
<interceptor-ref name="fileUpload">
<param name ="allowedTypes">
image/bmp,image/PNG,image/gif,image/JPEG,image/jpg,image/pjpeg
</param>
<param name="maximumSize">
102400000
</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"/>
<param name="savePath">/photo</param>
<result name="success" >success.jsp</result>
<result name="input"> /index.jsp</result>
</action>
</package>
</struts>
下面是Upload.java
package org.example.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class Upload extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = -8204063374280945416L;
private File upload;
private String uploadFileName;
private String uploadContentType;
private String savePath;
public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this.upload = upload;
}
public String getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(String uploadContentType) {
this.uploadContentType = uploadContentType;
}
public String getSavePath() {
return ServletActionContext.getRequest().getRealPath(savePath);
}
public void setSavePath(String savePath) {
this.savePath = savePath;
}
public String upload() throws Exception
{
//得到上传文件的后缀名
String b=getUploadContentType();
String houzhui=b.substring(b.indexOf("/")+1, b.length());
houzhui=(houzhui.equals("pjpeg")?"jpg":houzhui);
//得到文件的新名字
String a = upload.getName();
String mingzi= a.substring( 0, a.length()-3 ) + houzhui;
// 创建文件
FileOutputStream fos = new FileOutputStream(getSavePath() + "\\" + mingzi);
FileInputStream fis = new FileInputStream(getUpload());
byte[] buffer = new byte[1024];
int len = 0;
while ((len = fis.read(buffer)) > 0)
{
fos.write(buffer , 0 , len);
}
return SUCCESS;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
}
3,下面是index.jsp文件的源码
<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<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>
<s:fielderror></s:fielderror>
<s:form method="post" action="upload" enctype="multipart/form-data">
<s:textfield name="title" label="title"></s:textfield>
<s:file name="upload" label="file"></s:file>
<s:submit></s:submit>
</s:form>
<body>
</body>
</html>
备注:
也可以通过调用JS 的方法先得到要上传文件的后缀名,这种方法,大家自由发挥吧,想研究的朋友请联系我,QQ:296502215
分享到:
相关推荐
Struts2提供了一套完善的机制来处理文件上传,包括图片。本文将详细讲解如何利用Struts2实现图片上传并进行预览。 一、Struts2文件上传基础 1. 添加依赖:在项目中,你需要添加Struts2的核心库和文件上传插件。...
在本场景中,我们关注的是如何使用Struts2来实现图片上传并显示的功能,同时生成缩略图。 首先,我们需要在Struts2配置文件(通常为struts.xml)中定义一个Action类,该类负责处理图片上传请求。这个Action类应该有...
2. **创建Struts2 Action**:在Struts2项目中创建一个Action类,比如`ImageUploadAction`,并定义一个方法来处理上传请求。这个方法需要接收`File`或`CommonsFileUpload`的`FileItem`对象,以接收上传的图片文件。 ...
- 首先,需要在Struts2的Action类中创建一个字段来接收上传的文件,并配置对应的getter和setter方法。 - 然后,配置Struts2的配置文件(struts.xml),启用FileUpload拦截器并设置上传参数,如最大文件大小、允许...
在"struts2上传图片"这个场景下,我们将深入探讨如何在Struts2框架下实现用户上传图片的功能,并关注网站统计访问量以及防止重复提交的问题。 首先,上传图片是Web应用中常见的功能,它涉及到前端表单设计、后端...
在图片上传的场景中,Struts2提供Action类来接收用户上传的图片文件,同时可以通过配置Struts2的配置文件(struts.xml)来定义Action的映射路径和处理方法,使得前端请求能够正确地路由到后端的处理逻辑。...
在"struts2上传图片到Oracle"这个场景中,我们将探讨如何使用Struts2框架实现文件上传,以及如何将这些上传的图片存储到Oracle数据库中。 首先,让我们了解文件上传的基本流程。在Struts2中,我们通常会创建一个...
在本案例中,我们探讨的是如何利用Struts2框架处理文件上传,并将上传的图片以BLOB(Binary Large Object)类型存储在数据库中,同时提供下载功能。Hibernate则是一个对象关系映射(ORM)框架,它简化了数据库操作,...
在本项目中,我们关注的是Struts2中的图片上传功能,以及如何处理图片的大小和格式问题。这个压缩包包含了实现这些功能所需的jar文件和其他资源,例如TestUpload_Struts2项目。 首先,图片上传是Web应用中常见的...
在本教程中,我们将深入探讨如何利用Struts2实现单个图片的上传功能,无需JavaScript的额外开发。 首先,我们需要理解图片上传的基本流程。用户通过浏览器选择一张图片,然后该图片的文件数据被发送到服务器。...
在Struts2框架中,实现图片上传并生成等比例缩略图是一项常见的需求,尤其在构建Web应用时。本实例将向你展示如何利用Struts2的FileUpload拦截器处理图片上传,并通过Java图像处理库如Java AWT或Apache Commons ...
在本例中,我们将探讨如何结合Struts2和jQuery实现图片的同步上传功能。 首先,让我们分析`upload.jsp`页面。这个页面是用户与应用交互的界面,它包含了一个Struts2的表单(`<s:form>`),用于文件上传。表单的属性...
本文将深入探讨如何使用Struts框架实现图片上传功能,这在许多Web应用中都是一个常见且重要的需求。 ### Struts框架简介 Struts是一个开源的框架,用于创建企业级的Java Web应用。它基于Servlet和JSP技术,并遵循...
本主题涉及的是如何在Struts2中处理图片上传,并在上传后对其进行压缩,生成一张小图片以便在网页上展示。以下是实现这一功能所需的关键知识点: 1. **Struts2上传组件**: Struts2提供了`struts2-convention-...
在Struts2中实现Ajax图片上传功能,可以帮助用户在不刷新整个页面的情况下提交图片,提高用户体验。Ajax技术利用JavaScript的XMLHttpRequest对象与服务器进行异步数据交换,使得网页部分更新成为可能。 首先,我们...
在Struts2中处理文件上传是一项常见的任务,尤其是上传图片并展示它们。本篇将详细介绍如何在Struts2中实现绝对路径上传图片以及在页面上显示这些图片。 首先,了解文件上传的基本概念。在Web开发中,文件上传允许...
在"struts2上传下载+前端剪切图片"这个主题中,我们将探讨Struts2框架如何处理文件上传和下载功能,以及如何在前端实现图片的剪切操作。 **文件上传**: 在Struts2中,文件上传主要依赖于Apache的Commons ...
需要注意的是,为了安全起见,应避免直接使用上传文件的原始名称,以免遭受文件名注入攻击。可以使用UUID或其他唯一标识符来重命名上传的文件。 总结起来,Struts框架通过`struts2-fileupload`库支持图片上传,处理...
在Struts2中实现图片添加水印的功能,可以为网站或应用提供版权保护,美观设计,或者增强品牌形象。以下是关于如何在Struts2中实现这一功能的详细步骤和知识点: 1. **添加单个文字水印** 要添加文字水印,首先...
Struts2.0图片上传是Web开发中常见的一项功能,涉及到的主要知识点包括Struts2框架、文件上传处理、IO流操作以及配置文件的设定。在本文中,我们将深入探讨这些内容,帮助你理解和实现Struts2.0环境下的图片上传功能...