Sturts的文件上传



---------------------------------------------------------------------------------- struts
<action name ="uploadStudent" class ="StudentUploadAction">
            <interceptor-ref name ="fileUploadStack" />
            <interceptor-ref name="defaultStack"/>	
            <result type="chain">showBatchUploadCourse</result>
            <result name="input">/index.jsp</result>
        </action>

<s:form action="" enctype="multipart/form-data">
----------------------------------------------------------------------------------- jsp
<%@ page language="java"
	import="java.util.*,com.qieast.platform.model.*"
	contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<base href="<%=basePath%>">

<title>七易网络课堂体验 - Powered by 七易科技</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">-->


<script language="javascript" type="text/javascript"
	src="js/admincp/checkall.js"></script>

</head>
<body>
	<s:include value="../../../inc/stdspacetop.jsp"></s:include>
	<div class="mainarea">
		<div class="maininner">
			<s:include value="../../../inc/studenttop.jsp"></s:include>


<s:form action="s/uploadStudent.action?adminid=1" enctype="multipart/form-data">



			<div class="bdrcontent">
				<table class="formtable">
					<tbody>
						<tr>
							<th style="width: 15em;">上传学员文件:</th>
							<td>
							
							<s:file name ="myFile" label ="Image File" /><font color=red>*</font><br/>
							
						 文件格式必须为TXT文件,中间分割符为英文半角逗号","。 你还可以<a
								target="_blank" href="./data/studentinput_template.txt">点击这里下载模板文件</a>。
							</td>
						</tr>
						<tr>
							<th style="width: 15em;">该批学员类型:</th>
							<td><input name="studentutype" type="radio" value="1"
								onclick="window.location.href='s/showBatchUploadCourse.action?adminid=1'"
								checked />
								收费学员&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
								<input name="studentutype" type="radio" value="2"
								onclick="window.location.href='s/showBatchUploadRemedy.action?adminid=1'" />
								补课学员 <font color="red">*</font>
							</td>
						</tr>

						<tr>
							<th style="width: 15em;">学员文件模板:</th>
							<td></td>
						</tr>
					</tbody>
				</table>

				<br>
				<div id="register" class="title">
					<h3>设置该批学员开通的课程</h3>
				</div>
				<div id="waitload"></div>
				<div style="height: 469px; width: 787px; overflow-y: auto;"
					id="coursenolimit">
					<table cellspacing="2" cellpadding="2" class="listtable">
						<tbody>
							<tr class="line">
								<th width="450">课程名</th>
								<th>价格</th>
								<th>是否已关联</th>
								<th>操作</th>
							</tr>
							<s:iterator value="relatelist">

								<tr>
									<td><s:property value="cs.cname" /></td>
									<td><s:property value="cs.price" /></td>
									<%-- <td>未关联</td>
										<td>
										<a href="s/batchRelate.action?cid=<s:property value="cs.cid"/>&lessonnumber=3&type=1&adminid=1">添加关联</a>		
										</td>
										 --%>
									<td><s:if test="isRelate==true">
											<font color="green">已关联</font>
										</s:if> <s:else>未关联</s:else>
									</td>
									<td><s:if test="isRelate==false">
											<a
												href="/7e/s/batchUploadRelate.action?cid=<s:property value="cs.cid"/>&lessonnumber=3&adminid=1&type=1">添加关联</a>
										</s:if> <%--  <s:elseif test="isRootCourse==false">isRootCourse--<s:property value="isRootCourse"/></s:elseif> --%>


										<s:else>
											<a
												href="/7e/s/batchUploadCloseRelate.action?cid=<s:property value="cs.cid"/>&uid=<s:property value="uid"/>&type=1">
												关闭</a>
										</s:else>
									</td>
									<%-- 
										<td><s:if test="isRelate==true">已关联</s:if> <s:else>未关联</s:else>

										</td>
										<td><s:if test="isRelate==false">
												<a
													href="/7e/s/batchRelateCourse.action?cid=<s:property value="cs.cid"/>&type=1">添加关联</a>
											</s:if> <s:else>
												<a
													href="/7e/s/closeRelateCourse.action?cid=<s:property value="cs.cid"/>&type=1">关闭</a>
											</s:else>
										</td> --%>
								</tr>
							</s:iterator>
						</tbody>
					</table>
				</div>
			</div>

<div class="footactions">
<input type="submit" onclick="return btnSubmit_onclick();" class="submit" value="提交" name="batchuploadsubmit">
</div>
</s:form>
		</div>
	</div>
	<s:include value="../../../inc/sides.jsp"></s:include>
</body>
<s:debug></s:debug>
</html>
 -----------------------------------------------------------------------------------action
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;

import lombok.Data;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;
import com.qieast.platform.admincp.service.IStdCourseService;
import com.qieast.platform.model.HomeMember;
@Data
public class StudentUploadAction extends ActionSupport {
    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;
    private String caption;
    private IStdCourseService stdCourseService;
    private int cgid;
   private int adminid;
 
   

   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 String getCaption() {
       return caption;
  }

   public void setCaption(String caption) {
       this .caption = caption;
  }
  
    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];
               
                for (int byteRead = 0; (byteRead = in.read(buffer)) > 0; )
                {
                out.write(buffer, 0, byteRead);
                } 
           } finally {
                if ( null != in) {
                   in.close();
               }
                if ( null != out) {
                   out.close();
               }
           }
       } catch (Exception e) {
           e.printStackTrace();
       }
   }
   
    private static String getExtention(String fileName) {        
        return fileName;
   }

   @Override
    public String execute(){ 
	 
       imageFileName = getExtention(fileName);
       File imageFile = new File(ServletActionContext.getServletContext().getRealPath( "/uploadfiles" ) + "/" + imageFileName);
       copy(myFile, imageFile);
       if(check(myFile).equals("error")){
    	   return INPUT;
       }else if(write(myFile).equals("error")){
    	   return INPUT;
       }else
        return SUCCESS;
   }

	private String check(File myFile2) {
		String read;
        FileReader fileread;
        BufferedReader bufread;
        String[] temp = null;
        try {
            fileread = new FileReader(myFile2);
            bufread = new BufferedReader(fileread);
            try {
                while ((read = bufread.readLine()) != null) {
                	if(!read.contains(",")){
                		continue;
                	}else{
                		temp = read.split(",");
                		if(temp.length>2){
                			return "error";
                		}
                	}
                }
            } catch (IOException e) {                
                e.printStackTrace();
                return "error";
            }
        } catch (FileNotFoundException e) {            
            e.printStackTrace();
            return "error";
        }  
        return "success";
	}   
	
	private String write(File myFile2) {
		String read;
        FileReader fileread;
        BufferedReader bufread;
        HomeMember homeMember = null;
        String[] temp = null;
        try {
            fileread = new FileReader(myFile2);
            bufread = new BufferedReader(fileread);
            try {
                while ((read = bufread.readLine()) != null) {
                	if(!read.contains(",")){
                		continue;
                	}else{
                		homeMember = new HomeMember();
                		
                		
                		temp = read.split(",");
                		int stdId=	stdCourseService.findMaxUid();
                		homeMember.setUid(stdId);
                	System.out.println("temp[0].trim():"+temp[0].trim());	
                		homeMember.setUsername(temp[0].trim());
                		homeMember.setRealname(temp[0].trim());
                		homeMember.setPassword(temp[1].trim());
                		Date time = new Date();  
        		        long regdate = (long) time.getTime(); 
        				homeMember.setRegdate(regdate);
                	
                	System.out.println(homeMember);	
                		stdCourseService.batchAddStudents(stdId, homeMember, adminid);
                	}
                }                
            } catch (IOException e) {                
                e.printStackTrace();
            }
        } catch (FileNotFoundException e) {            
            e.printStackTrace();
        } 
        return "success";
	}   
}
-----------------------------------------------------------------------------------web.xml
	<!--FCK编辑器-->
	<servlet>
		<servlet-name>Connector</servlet-name>
		<servlet-class>com.fredck.FCKeditor.connector.ConnectorServlet</servlet-class>
		<init-param>
			<param-name>baseDir</param-name>
			<!-- 此为文件浏览路径 -->
			<param-value>/UserFiles/</param-value>
		</init-param>
		<init-param>
			<param-name>debug</param-name>
			<param-value>true</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet>
		<servlet-name>SimpleUploader</servlet-name>
		<servlet-class>com.fredck.FCKeditor.uploader.SimpleUploaderServlet</servlet-class>
		<init-param>
			<param-name>baseDir</param-name>
			<!-- 此为文件上传路径,需要在WebRoot 目录下新建 UserFiles 文件夹 -->
			<!-- 根据文件的类型还需要新建相关的文件夹 Image、Flash -->
			<param-value>/UserFiles/</param-value>
		</init-param>
		<init-param>
			<param-name>debug</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<!-- 此参数为是否开启上传功能 -->
			<param-name>enabled</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>AllowedExtensionsFile</param-name>
			<param-value></param-value>
		</init-param>
		<init-param>
			<!-- 此参数为文件过滤,以下的文件类型都不可以上传 -->
			<param-name>DeniedExtensionsFile</param-name>
			<param-value>php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi</param-value>
		</init-param>
		<init-param>
			<param-name>AllowedExtensionsImage</param-name>
			<param-value>jpg|gif|jpeg|png|bmp</param-value>
		</init-param>
		<init-param>
			<param-name>DeniedExtensionsImage</param-name>
			<param-value></param-value>
		</init-param>
		<init-param>
			<param-name>AllowedExtensionsFlash</param-name>
			<param-value>swf|fla</param-value>
		</init-param>
		<init-param>
			<param-name>DeniedExtensionsFlash</param-name>
			<param-value></param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>Connector</servlet-name>
		<url-pattern>/FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector</url-pattern>
	</servlet-mapping>

	<servlet-mapping>
		<servlet-name>SimpleUploader</servlet-name>
		<url-pattern>/FCKeditor/editor/filemanager/upload/simpleuploader</url-pattern>
	</servlet-mapping>
	<!--end-->







猜你喜欢

转载自zhangyulong.iteye.com/blog/1037746
今日推荐