`
Vince_Lee
  • 浏览: 62551 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

struts2上传

阅读更多

1.Action类

 

package com.bc.web;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.struts2.ServletActionContext;

import com.bc.bean.InformationParentSheet;
import com.bc.bean.InformationSheet;
import com.bc.service.impl.userServiceImpl;
import com.opensymphony.xwork2.ActionSupport;

public class AddInfoAction extends ActionSupport {
	private userServiceImpl userService;
	private InformationSheet is;
	private InformationParentSheet ips;
	private static final long  serialVersionUID =  572146812454l ;
    private static final int  BUFFER_SIZE =  16 * 1024 ;
   
    private  File myFile;
    private  String contentType;
    private  String fileName;
    private  String imageFileName;
   
    public void  setMyFileContentType(String contentType) {
        this .contentType =  contentType;
   } 
   
    public void  setMyFileFileName(String fileName) {
        this .fileName =  fileName;
   } 
       
    public void  setMyFile(File myFile) {
        this .myFile =  myFile;
   } 
   
    public  String getImageFileName() {
        return  imageFileName;
   } 
   
   
     public InformationParentSheet getIps() {
 		return ips;
 	}

 	public void setIps(InformationParentSheet ips) {
 		this.ips = ips;
 	}

 	public userServiceImpl getUserService() {
 		return userService;
 	}

 	public void setUserService(userServiceImpl userService) {
 		this.userService = userService;
 	}

 	public InformationSheet getIs() {
 		return is;
 	}

 	public void setIs(InformationSheet is) {
 		this.is = is;
 	}
   
    private static void  copy(File src, File dst) {
        try {
           InputStream in  = null ;
           OutputStream out  = null ;
            try {                
               in  = new  BufferedInputStream( new  FileInputStream(src), BUFFER_SIZE);
               out  = new  BufferedOutputStream( new  FileOutputStream(dst), BUFFER_SIZE);
                byte [] buffer = new byte [BUFFER_SIZE];
                while (in.read(buffer) > 0 ) {
                   out.write(buffer);
               } 
            } finally {
                if ( null !=  in) {
                   in.close();
               } 
                 if ( null !=  out) {
                   out.close();
               } 
           } 
        } catch (Exception e) {
           e.printStackTrace();
       } 
   } 
   
    private static  String getExtention(String fileName) {
//    	fileName=ServletActionContext.getRequest().getParameter("myFile");
        int  pos =  fileName.lastIndexOf(".");
        return  fileName.substring(pos);
   } 

	@Override
	public String execute() throws Exception {
		// TODO Auto-generated method stub
		String select=ServletActionContext.getRequest().getParameter("select");
		Long ifID=Long.parseLong(select);
		
		String ifHead=ServletActionContext.getRequest().getParameter("ifHeadLine");
		
		String ifrec=ServletActionContext.getRequest().getParameter("ifRec");
		
		//上传图片
		if(fileName!=null){
			imageFileName = new  Date().getTime() +  getExtention(fileName);
	        File imageFile = new  File(ServletActionContext.getServletContext().getRealPath("/UploadImages")+"/"+imageFileName);
//			File imageFile = new  File("F://uploadImg"+"/"+imageFileName);
	        copy(myFile, imageFile);
		}
		
		
		
		InformationParentSheet ips=userService.findInfoParSheetById(ifID);
		is.setInformationParentSheet(ips);
		
		is.setIfHeadline(ifHead);
		is.setIfRec(ifrec);
//		is.setIfPicture(imageFile.toString());
		is.setIfPicture(imageFileName);
		
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		 Date date = new Date();
		 String now = sdf.format(date);
		 date = sdf.parse(now);
		is.setIfPtTime(date);

		this.userService.addInfoSheet(is);
		System.out.println("添加完成!");
		return SUCCESS;
	}
}
 

2.jsp

 

<s:file name="myFile" label="Image File"></s:file>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ include file="_SessionCheck.jsp" %>


<html>
<head>
<script type="text/javascript" src="ckeditor/ckeditor.js"></script>
<SCRIPT type="text/javascript">
	function checkInput()
	{
		var ifTitle=document.getElementById("ifTitle").value;
		var list=document.getElementById("list").value;
		var ifCome=document.getElementById("ifCome").value;
		var ifSummary=document.getElementById("ifSummary").value;
		
		if(ifTitle==null||ifTitle=="")
		{
			alert('新闻标题不能为空!');
			return false;
		}
		if(list=="-1")
		{
			alert('请选择新闻类型!');
			return false;
		}
		if(ifCome==null||ifCome=="")
		{
			alert('新闻来源不能为空!');
			return false;
		}
		if(ifSummary=="")
		{
			alert('新闻概要不能为空!');
			return false;
		}
		
	}
	
</SCRIPT>
<title>新闻添加</title>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="keywords" content="Discuz!,Board,Comsenz,forums,bulletin board,">
<meta name="description" content="新闻  - Discuz! Board">
<meta name="generator" content="Discuz! 4.0.0RC4 with Templates 4.0.0">
<meta name="MSSmartTagsPreventParsing" content="TRUE">
<meta http-equiv="MSThemeCompatible" content="Yes">

<style type="text/css"><!--
a			{ text-decoration: none; color: #000000 }
a:hover			{ text-decoration: underline }
body			{ scrollbar-base-color: #F3F6FA; scrollbar-arrow-color: #4D76B3; font-size: 12px; background-color: #ffffff }
table			{ font: 12px Verdana,Tahoma; color: #000000 }
input,select,textarea	{ font: 11px Verdana,Tahoma; color: #000000; font-weight: normal; background-color: #F3F6FA }
select			{ font: 11px Verdana,Tahoma; color: #000000; font-weight: normal; background-color: #F3F6FA }
.nav			{ font: 12px Verdana,Tahoma; color: #000000; font-weight: bold }
.nav a			{ color: #000000 }
.header			{ font: 11px Verdana,Tahoma; color: #FFFFFF; font-weight: bold; background-image: url("images/green/bg01.gif") }
.header a		{ color: #FFFFFF }
.category		{ font: 11px Verdana,Tahoma; color: #000000; background-color: #EFEFEF }
.tableborder		{ background: #4D76B3; border: 0px solid #4D76B3 } 
.singleborder		{ font-size: 0px; line-height: 0px; padding: 0px; background-color: #F3F6FA }
.smalltxt		{ font: 11px Verdana,Tahoma }
.outertxt		{ font: 12px Verdana,Tahoma; color: #000000 }
.outertxt a		{ color: #000000 }
.bold			{ font-weight: bold }
.altbg1			{ background: #F3F6FA }
.altbg2			{ background: #FFFFFF }
--></style>
<script language="JavaScript" src="images/common.js"></script>
<style type="text/css" id="defaultPopStyle">.cPopText { font-family: Tahoma, Verdana; background-color: #FFFFCC; border: 1px #000000 solid; font-size: 12px; padding-right: 4px; padding-left: 4px; height: 20px; padding-top: 2px; padding-bottom: 2px; visibility: hidden; filter: Alpha(Opacity=80)}</style></head><body leftmargin="0" rightmargin="0" topmargin="0" onkeydown="if(event.keyCode==27) return false;"><div id="popLayer" style="position: absolute; z-index: 1000;" class="cPopText"></div>

<br>
<s:form method="post" name="NewsAdd" action="addInfo" onsubmit="return checkInput()"  enctype ="multipart/form-data"> <!-- 调用action -->

<table class="tableborder" align="center" cellpadding="4" cellspacing="1" width="97%">
<tbody><tr>
<td colspan="2" class="header">新闻添加 - 内容</td>
</tr>
<tr>
<td class="altbg1" width="21%">新闻标题:</td>
<td class="altbg2"><s:textfield id="ifTitle" name="is.ifTitle" label="新闻标题"></s:textfield>
</tr>

<tr>
<td class="altbg1">是否头条:</td>
<td class="altbg2">
	<select name="ifHeadLine">
		<option value="否">否</option>
		<option value="是">是</option>
	</select>
</td>
</tr>

<tr>
<td class="altbg1">是否推荐:</td>
<td class="altbg2">
	<select name="ifRec">
		<option value="否">否</option>
		<option value="是">是</option>
	</select>
</td>
</tr>

<tr>
<td class="altbg1">新闻类型:</td>
<td class="altbg2">
	<s:select list="#request.list" id="list" listKey="ipId" 
    	   listValue="ipName" name="select" label="新闻类型:" headerValue="--请选择--" headerKey="-1">
	</s:select>
</td>
</tr>

<tr>
<td class="altbg1">作者:</td>
<td class="altbg2"><s:textfield name="is.ifAuthor" label="作者"></s:textfield></td>
</tr>

<tr>
<td class="altbg1">新闻来源:</td>
<td class="altbg2">
	<s:textfield id="ifCome" name="is.ifCome" label="出处"></s:textfield>
</td>
</tr>
<tr>
<td class="altbg1">备注:</td>
<td class="altbg2"><s:textfield name="is.ifRemark" label="备注"></s:textfield></td>
</tr>
<tr>

<td class="altbg1">新闻关键字:</td>
<td class="altbg2"><s:textfield name="is.ifKeyWord" label="新闻关键字"></s:textfield></td>
</tr>

<tr>
<td class="altbg1">新闻概要:</td>
<td class="altbg2"><s:textarea id="ifSummary" name="is.ifSummary" label="新闻概要" cols="150" rows="5"></s:textarea></td>
</tr>

<tr>
<td class="altbg1">新闻图片:</td>
<td class="altbg2">
	<s:file name="myFile" label="Image File"></s:file>
</td>
</tr>

<tr>
<td class="altbg1" valign="top">新闻内容:</td>
<td class="altbg2"><textarea id="ifContent" name="is.ifContent" id="is.ifContent" labelposition="left" cols="150" rows="15" id="descr"></textarea></td>

</tr>
</tbody></table>
<br>
<center><s:submit name="NewsSubmit"  value="提    交" /></center>
</s:form>
<script type="text/javascript"> 
       CKEDITOR.replace( 'is.ifContent' ); 
</script> 
</body></html>
分享到:
评论

相关推荐

    struts2上传文件源代码

    在这个“struts2上传文件源代码”中,我们将深入探讨Struts2如何实现文件上传功能,以及涉及到的相关知识点。 首先,文件上传是Web应用中常见的功能,它允许用户从本地计算机选择文件并将其发送到服务器。在Struts2...

    struts2上传下载项目

    在"struts2上传下载项目"中,我们可以深入理解如何利用Struts2实现文件的上传与下载功能。 首先,上传功能在Web应用中十分常见,比如用户在注册时上传头像,或者提交文档等。在Struts2中,我们主要借助`struts2-...

    struts2上传和下载文件详细源码

    在这个"struts2上传和下载文件详细源码"中,我们可以深入理解Struts2如何处理文件上传和下载操作。 1. 文件上传: 在Struts2中,文件上传主要依赖于Apache的Commons FileUpload库。首先,需要在struts.xml配置文件...

    Uploadify结合Struts2上传demo

    本教程将围绕"Uploadify结合Struts2上传demo"这一主题,详细介绍如何在Struts2框架下集成Uploadify实现文件上传功能。 首先,我们需要在项目中引入Uploadify的相关资源。这通常包括JavaScript库(uploadify.js)和...

    struts2上传插件(中文编码冲突解决)

    解决Struts2上传时候使用UTF-8的冲突问题: * 重新包装了JakartaMultiPartRequest提供Chartset的设置方法。 * 可以通过配置方式对MultiPartRequest中的内容进行编码设定,请在Struts.xml中配置添加struts.multipart...

    struts2上传图片到Oracle

    在"struts2上传图片到Oracle"这个场景中,我们将探讨如何使用Struts2框架实现文件上传,以及如何将这些上传的图片存储到Oracle数据库中。 首先,让我们了解文件上传的基本流程。在Struts2中,我们通常会创建一个...

    struts2 文件上传

    struts2 文件上传 struts2上传标签file fileuploadstruts2 文件上传 struts2上传标签file fileuploadstruts2 文件上传 struts2上传标签file fileupload

    struts2 上传图片显示

    在本场景中,我们关注的是如何使用Struts2来实现图片上传并显示的功能,同时生成缩略图。 首先,我们需要在Struts2配置文件(通常为struts.xml)中定义一个Action类,该类负责处理图片上传请求。这个Action类应该有...

    struts2上传文件及拦截器

    struts2上传单个文件及多个文件,strus2拦截器的使用,里面有个user用户,先执行user.jsp即登陆,可以执行上传文件的操作,反之,不能,有个exit.jsp,退出之后不能执行。里面含有jar文件,导入myeclipse可以执行...

    struts2上传图片

    在"struts2上传图片"这个场景下,我们将深入探讨如何在Struts2框架下实现用户上传图片的功能,并关注网站统计访问量以及防止重复提交的问题。 首先,上传图片是Web应用中常见的功能,它涉及到前端表单设计、后端...

    struts2 上传文件及打包下载zip

    在这个"struts2 上传文件及打包下载zip"的示例中,我们将探讨如何利用Struts2实现文件上传和下载功能。 首先,文件上传是Web应用程序中的常见需求。在Struts2中,我们可以使用`Struts2`提供的`CommonsFileUpload`...

    struts2上传文件进度条显示

    Struts2作为一款流行的Java Web框架,提供了丰富的功能来处理用户请求,包括文件上传。在Struts2中实现文件上传并展示进度条是一项常见的需求,它能提升用户体验,尤其是在处理大文件时。以下将详细解释如何在Struts...

    Jquery+struts2上传图片,制作进度条,以及Jquery+Json+Struts交互等示例

    Jquery+struts2上传图片,制作进度条等示例,还有Jquery+Json+Struts实现Ajax技术,还有图形处理技术等,虽然很少,但都有重点突出,由于我也是学习,所以代码不是很简洁,对想学习交流的朋友非常合适

    Struts2上传图片存数据库

    在本案例中,我们探讨的是如何利用Struts2框架处理文件上传,并将上传的图片以BLOB(Binary Large Object)类型存储在数据库中,同时提供下载功能。Hibernate则是一个对象关系映射(ORM)框架,它简化了数据库操作,...

    ckeditor+struts2上传图片

    2. **创建Struts2 Action**:在Struts2项目中创建一个Action类,比如`ImageUploadAction`,并定义一个方法来处理上传请求。这个方法需要接收`File`或`CommonsFileUpload`的`FileItem`对象,以接收上传的图片文件。 ...

    xheditor集成struts2上传图片

    本案例涉及的是将xheditor富文本编辑器与Struts2框架整合,实现图片上传功能。xheditor是一款强大的JavaScript在线编辑器,提供了丰富的文本编辑功能,而Struts2是一个流行的Java Web框架,用于构建MVC(模型-视图-...

    struts2上传必备jar包,避免出现struts2的升级漏洞!自己吃亏后分享

    这个bug是由Struts2上传文件后return SUCCESS后报的错误: java.lang.AbstractMethodError: be.telio.mediastore.ui.upload.GarryMultiPartRequest.cleanUp()V at org.apache.struts2.dispatcher.multipart....

    Struts2项目struts2 上传 下载 项目

    在这个“Struts2 上传下载项目”中,我们将深入探讨如何利用Struts2实现文件上传与下载功能,并结合MySQL数据库、DAO(数据访问对象)层以及MVC架构来构建一个完整的应用。 1. **Struts2框架基础** Struts2的核心...

    struts2上传分析

    Struts2作为一款流行的Java Web框架,其在处理文件上传方面提供了多种方法,使得开发者能够灵活地实现用户数据的上传功能。以下是对Struts2上传功能的详细分析: 1. **Struts2的上传方式** - **使用Struts2核心...

    struts2 上传文件超过最大值解决办法

    在Struts2框架中,处理文件上传是一项常见且重要的功能,尤其当涉及到大文件上传时,往往会遇到上传文件大小超过预设限制的问题。这不仅影响用户体验,还可能导致应用程序出现异常或错误。本文将深入探讨如何解决...

Global site tag (gtag.js) - Google Analytics