- 浏览: 702348 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (362)
- java基础 (33)
- html/css+div/javascript (17)
- Ajax/XML/JSON/XSL (7)
- JQuery (11)
- Extjs (1)
- JSP/Servlet (19)
- MVC模式 (4)
- struts 1 (17)
- Struts 2.3.4 (17)
- Spring 3.2 (26)
- Springmvc (3)
- Hibernate 4.1 (21)
- ibatis (6)
- Velocity模板语言 (2)
- Rose框架 (5)
- EJB (1)
- JUnit测试 (2)
- 数据库DB (24)
- 重构 / 设计模式 (3)
- 开发工具IDE (37)
- 数据结构与算法设计 (3)
- Android (12)
- Linux (4)
- bug集合 (29)
- 缓存技术(redis) (3)
- Lucene全文索引 (15)
- maven3.0.5 (4)
- 小工具集合 (18)
- 面试题 (5)
- 闲聊 (11)
- 其他 (4)
- 接口API (2)
- work (2)
- Flex (0)
- JMS (1)
- 开源项目集合 (1)
- 技术博客 (1)
- 分类04 (0)
- 分类05555 (0)
最新评论
-
小小小羊:
好屌...
java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$Refle -
liubinli2005:
这个可以脱底spring。单独使用吗?
DAO层:jade -
cangbaotu:
我觉得对于开发者来说,能脚本化编写爬虫是一件挺开心的事情( ̄▽ ...
网页爬取 -
asjava:
很好的文章, 但每段代码清单都重复了一次.
spring 事务 -
xia635317478:
jethypc 写道验证码的session无法传过去啊 还是我 ...
登陆验证码(struts2实现)
上传功能的实现(Struts2)
在WebRoot根目录新建一个images文件夹
upload.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <%@ taglib prefix="s" uri="/struts-tags" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <html> <head> <base href="<%=basePath%>"> </head> <body bgcolor="green"> <s:form name="" action="momo/upload" enctype="multipart/form-data"> 图片路径:<s:file name="myFile" label="浏览照片"/> <s:submit value="上传"/> </s:form> </body> </html>
struts.xml
<?xml version="1.0" encoding="GBK" ?> <!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.i18n.encoding" value="gbk"/> <constant name="struts.custom.i18n.resources" value="ApplicationResources"/> <package name="mm" extends="struts-default" namespace="/momo"> <action name="upload" class="com.org.upload.action.UploadAction"> <interceptor-ref name="defaultStack"> <param name="fileUpload.maximumSize">10240000</param> <!-- 1024b=1Kb (10000KB/1024)M --> <param name="fileUpload.allowedTypes"> image/bmp,image/png,image/gif,image/jpeg,image/jpg,image/pjpeg, application/msword,text/plain,application/vnd.ms-excel <!-- .doc .txt .xls --> </param> </interceptor-ref> <result name="input">/upload.jsp</result> <result name="success">/success.jsp</result> <param name="savePath">/images</param> </action> </package> </struts>
UploadAction.java
package com.org.upload.action; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.sql.Timestamp; import java.util.Date; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.Action; public class UploadAction implements Action{ private File myFile; //上传文件的file对象 private String myFileFileName;//上传文件名 private String myFileContentType;//上传文件的MINE类型 jpeg/jpg private String savePath;//保存路径 public File getMyFile() { return myFile; } public void setMyFile(File myFile) { this.myFile = myFile; } public String getMyFileFileName() { return myFileFileName; } public void setMyFileFileName(String myFileFileName) { this.myFileFileName = myFileFileName; } public String getMyFileContentType() { return myFileContentType; } public void setMyFileContentType(String myFileContentType) { this.myFileContentType = myFileContentType; } public String getSavePath() { return savePath; } public void setSavePath(String savePath) { this.savePath = savePath; } public String execute() throws Exception{ String newFileName=null; //得到当前时间自1900年1月7日0分0秒开始流逝的毫秒数,将这个毫秒数作为上传文件的文件名 String now = ""+(1900+new Date().getYear()) + (1+new Date().getMonth())+ (7+new Date().getDay()) + new Date().getHours()+new Date().getMinutes()+new Date().getSeconds() ; System.out.print("年"+(1900+new Date().getYear())+"/月"+(1+new Date().getMonth())+"/日"+(7+new Date().getDay())+"/时"+new Date().getHours()+"/分"+new Date().getMinutes()+"/秒"+new Date().getSeconds()) ; //得到保存上传文件的目录的真实路径 String path=ServletActionContext.getServletContext().getRealPath(savePath); File dir=new File(path); //如果这个目录不存在,则创建它。 if(!dir.exists()){ dir.mkdir(); } int index=myFileFileName.lastIndexOf("."); //判断上传文件的名是否有扩展名 if(index!=-1){ newFileName=now+myFileFileName.substring(index); }else{ newFileName=now; } BufferedOutputStream bos=null; BufferedInputStream bis=null; //读取保存在临时目录下的上传文件,写入到新的文件中。 FileInputStream fis=new FileInputStream(myFile); bis=new BufferedInputStream(fis); FileOutputStream fos=new FileOutputStream(new File(dir,newFileName)); bos=new BufferedOutputStream(fos); byte[] buf=new byte[4096]; int len=-1; while((len=bis.read(buf))!=-1){ bos.write(buf, 0, len); } bos.flush(); return SUCCESS; } }
上传文件类型和名字:
Content-Type not allowed: file "09poC_wallpapers.jpg" "upload_1ea6fe4e_13611ac7d7c__8000_00000012.tmp" image/pjpeg
.a :
application/octet-stream
.ai :
application/postscript
'.aif' :
'audio/x-aiff',
'.aifc' :
'audio/x-aiff',
'.aiff' :
'audio/x-aiff',
'.au' : '
audio/basic',
'.avi' :
'video/x-msvideo',
'.bat' :
'text/plain',
'.bcpio' :
'application/x-bcpio',
'.bin' :
'application/octet-stream',
'.bmp' :
'image/x-ms-bmp',
'.c' :
'text/plain',
# Duplicates
'.cdf' :
'application/x-cdf',
'.cdf'
: 'application/x-netcdf',
'.cpio' :
'application/x-cpio',
'.csh' :
'application/x-csh',
'.css' :
'text/css',
'.dll' :
'application/octet-stream',
'.doc' :
'application/msword',
'.dot' :
'application/msword',
'.dvi' :
'application/x-dvi',
'.eml' :
'message/rfc822',
'.eps' :
'application/postscript',
'.etx' :
'text/x-setext',
'.exe' :
'application/octet-stream',
'.gif' :
'image/gif',
'.gtar' :
'application/x-gtar',
'.h' :
'text/plain',
'.hdf' :
'application/x-hdf',
'.htm' :
'text/html',
'.html' :
'text/html',
'.ief' :
'image/ief',
'.jpe' :
'image/jpeg',
'.jpeg' :
'image/jpeg',
'.jpg' :
'image/jpeg',
'.js' :
'application/x-javascript',
'.ksh' :
'text/plain',
'.latex' :
'application/x-latex',
'.m1v' :
'video/mpeg',
'.man' :
'application/x-troff-man',
'.me' :
'application/x-troff-me',
'.mht' :
'message/rfc822',
'.mhtml' :
'message/rfc822',
'.mif' :
'application/x-mif',
'.mov' :
'video/quicktime',
'.movie' :
'video/x-sgi-movie',
'.mp2' :
'audio/mpeg',
'.mp3' :
'audio/mpeg',
'.mpa' :
'video/mpeg',
'.mpe' :
'video/mpeg',
'.mpeg' :
'video/mpeg',
'.mpg' :
'video/mpeg',
'.ms' :
'application/x-troff-ms',
'.nc' :
'application/x-netcdf',
'.nws' :
'message/rfc822',
'.o' :
'application/octet-stream',
'.obj' :
'application/octet-stream',
'.oda' :
'application/oda',
'.p12' :
'application/x-pkcs12',
'.p7c' :
'application/pkcs7-mime',
'.pbm' :
'image/x-portable-bitmap',
'.pdf' :
'application/pdf',
'.pfx' :
'application/x-pkcs12',
'.pgm' :
'image/x-portable-graymap',
'.pl' :
'text/plain',
'.png' :
'image/png',
'.pnm' :
'image/x-portable-anymap',
'.pot' :
'application/vnd.ms-powerpoint',
'.ppa' :
'application/vnd.ms-powerpoint',
'.ppm' :
'image/x-portable-pixmap',
'.pps' :
'application/vnd.ms-powerpoint',
'.ppt' :
'application/vnd.ms-powerpoint',
'.ps' :
'application/postscript',
'.pwz' :
'application/vnd.ms-powerpoint',
'.py' :
'text/x-python',
'.pyc' :
'application/x-python-code',
'.pyo' :
'application/x-python-code',
'.qt' :
'video/quicktime',
'.ra' :
'audio/x-pn-realaudio',
'.ram' :
'application/x-pn-realaudio',
'.ras' :
'image/x-cmu-raster',
'.rdf' :
'application/xml',
'.rgb' :
'image/x-rgb',
'.roff' :
'application/x-troff',
'.rtx' :
'text/richtext',
'.sgm' :
'text/x-sgml',
'.sgml' :
'text/x-sgml',
'.sh' :
'application/x-sh',
'.shar' :
'application/x-shar',
'.snd' :
'audio/basic',
'.so' :
'application/octet-stream',
'.src' :
'application/x-wais-source',
'.sv4cpio':
'application/x-sv4cpio',
'.sv4crc' :
'application/x-sv4crc',
'.swf' :
'application/x-shockwave-flash',
'.t' :
'application/x-troff',
'.tar' :
'application/x-tar',
'.tcl' :
'application/x-tcl',
'.tex' :
'application/x-tex',
'.texi' :
'application/x-texinfo',
'.texinfo':
'application/x-texinfo',
'.tif' :
'image/tiff',
'.tiff' :
'image/tiff',
'.tr' :
'application/x-troff',
'.tsv' :
'text/tab-separated-values',
'.txt' :
'text/plain',
'.ustar' :
'application/x-ustar',
'.vcf' :
'text/x-vcard',
'.wav' :
'audio/x-wav',
'.wiz' :
'application/msword',
'.wsdl' :
'application/xml',
'.xbm' :
'image/x-xbitmap',
'.xlb' :
'application/vnd.ms-excel',
# Duplicates
'.xls' :
'application/excel',
'.xls' :
'application/vnd.ms-excel',
.xml :
text/xml
.xpdl:
application/xml
.xpm :
image/x-xpixmap
.xsl :
application/xml
.xwd :
image/x-xwindowdump
.zip :
application/zip
firefox 和 ie 的文件类型区别
Firefox:
image/jpeg, image/bmp, image/gif, image/png
ie 6:
image/pjpeg ,image/bmp, image/gif, image/x-png
ie 7:
image/pjpeg, image/bmp, image/gif, image/x-png
ie 8:
image/pjpeg, image/bmp, image/gif, image/x-png
Ie 9:
image/jpeg, image/bmp, image/gif, image/png
所以在struts.xml配置文件中需要
<param name="allowedTypes">
image/bmp,image/png,image/gif,image/jpeg,image/jpg,
image/pjpeg ,image/bmp, image/gif, image/x-png,
</param>
发表评论
-
网页爬取
2013-09-05 13:10 1070网页爬取 参考: 1.http://www.csdnjava ... -
Struts2学习笔记
2013-07-27 10:42 1170Struts2学习笔记 1.官网下载包 URL:http ... -
浏览器插件集合(火狐+谷歌)
2013-07-03 10:26 1161Change Host 引用c:\windows\syste ... -
【32位和64位不同的操作系统】环境的配置
2013-07-02 13:34 1208【32位和64位不同的操作 ... -
跨域共享Cookies
2013-06-29 22:23 12406跨域共享Cookies 正常的cookie只能在一个应用中 ... -
代码托管Eclipse插件--Egit使用(GitHub)
2013-06-09 00:09 4870代码托管Eclipse插件--Egit使用(GitHub) ... -
FindBugs简介
2013-05-14 16:18 1329FindBugs简介 一、介绍 FindBugs 是一个静态 ... -
常用Java代码质量检测评估工具
2013-05-14 16:07 8396常用Java代码质量检测评估工具 1. PMD fro ... -
乱码解决
2013-05-09 16:31 1007乱码解决 1.超链接发送参数: 发送的时候使用URLEnc ... -
JAVA操作Excel
2013-05-05 15:02 964JAVA操作Excel JAVA 通常有两种方法来操作Ex ... -
JavaMail邮件发送Demo
2012-12-26 11:37 3089JavaMail邮件发送Demo import com ... -
Spring分别与Struts1.x 和Struts2.x集成方法
2012-11-16 14:05 1532Spring分别与Struts1.x 和Struts2.x集成 ... -
Struts2_Action处理类获取Scope对象
2012-11-16 14:05 578Struts2_Action处理类获取Scope对象 1 ... -
Struts2一个Action内包含多个请求处理方法(三种方式)
2012-11-12 09:29 1229Struts2一个Action内包含多个请求处理方法(三种方式 ... -
struts2中 ServletActionContext与ActionContext区别 .
2012-10-30 17:29 1139http://blog.csdn.net/lushuaiyin ... -
Struts2配置文件详解
2012-10-08 14:33 1020struts2共有4类配置文件, struts.pr ... -
Action处理类
2012-10-08 14:16 901Action处理类 一、可以实现Action接口 ... -
struts2标签02
2012-10-08 13:54 1761struts2标签02 34. property ... -
struts2标签01
2012-10-08 13:42 1521Struts 2标签01 1.a 3 2.actio ... -
type="diapatcher Redirect RedirectAction"配置文件struts.xml
2012-10-08 11:23 3486type="diapatcher Redirec ...
相关推荐
在这个特定的场景中,我们关注的是如何使用Struts来实现文件的上传和下载功能。这个功能对于任何Web应用来说都是非常重要的,因为它允许用户交互地处理数据和资源。 首先,我们需要理解文件上传的基本流程。在...
下面将详细阐述如何使用Struts2来实现文件上传功能。 1. **Struts2文件上传组件** Struts2框架集成了一个名为`struts2-convention-plugin`的插件,它提供了文件上传的支持。主要依赖于`Commons FileUpload`和`...
本篇文章将详细探讨如何在Struts2框架下实现文件的上传与下载。 首先,我们需要了解Struts2中的文件上传机制。Struts2提供了`FileUploadInterceptor`拦截器来处理文件上传请求。在处理文件上传时,开发者需要在...
在本案例中,我们关注的是如何使用Struts2实现文件上传的功能,这在许多Web应用中都是一个常见的需求,比如用户上传头像、提交文档等。 首先,理解上传功能的基本原理。在HTTP协议中,文件上传通常通过表单的POST...
总结,实现Struts2的文件上传功能需要配置Struts2拦截器、创建正确的HTML表单、编写处理文件上传的Action类以及处理可能出现的异常情况。这个过程涉及到了Web开发中的前端交互、后端处理和错误处理等多个方面,是...
在Struts2框架中实现文件上传功能是一项常见的任务,这通常涉及到用户通过表单提交文件,服务器端接收并处理这些文件。在这个场景中,我们将探讨如何使用Struts2来实现这一功能。 首先,你需要在项目中引入Struts2...
结合Struts2,一个流行的Java Web框架,可以构建出高效、用户友好的文件上传功能。下面将详细介绍如何利用SWFUpload与Struts2来实现多文件上传。 **一、SWFUpload组件介绍** SWFUpload 是一个JavaScript库,它利用...
Struts2提供了完善的文件上传支持,让我们来详细探讨如何在Struts2中实现多文件上传。 首先,我们需要在Struts2的配置文件(struts.xml)中启用文件上传的支持。这通常涉及到添加`<constant>`标签来设置`struts....
以上就是SSH框架中使用Struts2和Hibernate实现图片上传的主要知识点,涵盖了Web请求处理、ORM框架、文件上传、数据库操作以及前端交互等多个方面。实际项目开发时,还需要结合具体的业务需求和安全规范进行详细设计...
总结来说,"基于Struts2及POI实现的导入功能"是一个常见的Java Web开发场景,它利用Struts2的请求处理和文件上传能力,结合Apache POI的Excel文件处理功能,实现了从Excel文件高效地导入数据到Web应用中的功能。...
Struts1和Struts2是两个非常著名的Java Web框架,它们都提供了处理文件上传和下载的功能,但实现方式有所不同。本文将深入探讨这两个框架在文件操作方面的具体实现。 首先,让我们了解一下Struts1中的文件上传功能...
在基于Struts2的文件上传下载功能中,它提供了处理用户上传文件和提供文件下载的服务。这个完整的源代码是实现这些功能的一个实例,经过测试确保了其正确性和可用性。 首先,我们要理解Struts2中的Action类。Action...
这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件到服务器。在Struts2中,这通常通过表单实现,表单包含一个`<input type="file">`...
在CKEditor中实现图片上传功能,通常会结合后端框架如Struts2进行处理。本文将深入探讨如何利用CKEditor与Struts2实现图片上传的功能。 首先,我们需要在CKEditor的配置中启用图片上传功能。这可以通过修改CKEditor...
在Struts2中实现文件上传功能是一项常见的任务,这通常涉及到对用户提交的文件进行验证,如限制文件类型、大小,并处理多文件上传的情况。 首先,我们需要在`struts.xml`配置文件中定义一个Action,这个Action将...
Struts2是一个强大的MVC(Model-View-Controller)框架,广泛应用于Java Web开发中,提供了丰富的功能,包括文件的上传和下载。在本项目中,我们关注的是如何使用Struts2来实现实时的文件交互操作,即文件的上传与...
本项目实现了使用Struts2进行文件批量上传的功能,这涉及到几个关键的技术点,包括文件上传组件的选择、前端表单设计、后端处理逻辑以及存储策略。 1. **文件上传组件**:在Struts2中,我们通常使用`Commons ...
Struts和SwfUpload是两种在Web开发中用于构建强大功能的应用工具,它们结合使用可以实现高效的文件上传功能。在本文中,我们将深入探讨这两个组件以及如何将它们整合以实现文件上传。 首先,Struts是一个基于MVC...
通过以上步骤,你已经成功实现了Struts2框架下的图片上传和预览功能。SmartUpload_demo可能是一个包含上述所有代码和配置的示例项目,你可以下载并运行它来加深理解。记住,实际开发中要根据具体需求进行调整,确保...
在本教程中,我们将深入探讨如何利用Struts2实现单个图片的上传功能,无需JavaScript的额外开发。 首先,我们需要理解图片上传的基本流程。用户通过浏览器选择一张图片,然后该图片的文件数据被发送到服务器。...