zoukankan      html  css  js  c++  java
  • Struts2文件的上传

    须要的包文件:

    commons-fileupload-1.2.1.jar
    commons-io-1.3.2.jar
    commons-logging-1.1.jar
    freemarker-2.3.13.jar
    ognl-2.6.11.jar
    struts2-core-2.1.6.jar
    xwork-2.1.2.jar

    Struts2Test.java源码:

    package com.test;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    import org.apache.struts2.ServletActionContext;
    import com.opensymphony.xwork2.ActionSupport;
    
    @SuppressWarnings("serial")
    public class Struts2Test extends ActionSupport{
    	
    	private String picFileName;
    	private File pic;
    	
    	public File getPic() {
    		return pic;
    	}
    
    	public void setPic(File pic) {
    		this.pic = pic;
    	}
    
    	public String getPicFileName() {
    		return picFileName;
    	}
    
    	public void setPicFileName(String picFileName) {
    		this.picFileName = picFileName;
    	}
    	
    	public String upload() throws IOException {
    		//输出的文件路径以及文件名称java.io.File.File(String parent, String child)
    		File upPic=new File(ServletActionContext.getServletContext().getRealPath("upload"),picFileName);
    		FileInputStream in=null;
    		FileOutputStream out=null;
    		//得到父类路径,假设不存在则创建
    		upPic.getParentFile().mkdirs();
    		in=new FileInputStream(pic);   //读入文件
    		out=new FileOutputStream(upPic);   //输出文件
    		int len=0;    //数据长度
    		byte[] byt=new byte[1024];   //每次读入的数据包大小
    		while((len=in.read(byt))!=-1){     //假设有数据读入则输出
    			out.write(byt, 0, len);
    		}
    		in.close();   //关闭读入流
    		out.close();    //关闭输出流
    		return SUCCESS;
    	}
    }

    struts.xml源码:

    <?

    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.devMode" value="true" /> <package name="default" extends="struts-default" namespace="/"> <action name="hello" class="com.test.Struts2Test" > <result name="success">/success.jsp</result> </action> </package> </struts>


    web.xml源码:

    <?xml version="1.0" encoding="UTF-8"?

    > <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.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.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>


    index.jsp源码:

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <%@taglib prefix="s" uri="/struts-tags"%>
    <html>
      <head>
        <base href="<%=basePath%>">
        <title>My JSP 'index.jsp' starting page</title>
      </head>
      <body>
      	<s:form action="hello!upload" enctype="multipart/form-data" method="post">
      	<!-- enctype="multipart/form-data"   此处是一个非常easy忽略的盲点 -->
      		<s:file name="pic" label="上传" />
      		<s:submit value="提交"/>
      	</s:form>
      </body>
    </html>

    success.jsp源码:

    <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <html>
      <head>
        <base href="<%=basePath%>">
        <title>SUCCESS</title>
      </head>
      <body>
        SUCCESS! <br>
      </body>
    </html>


  • 相关阅读:
    golang API开发过程的中的自动重启(基于gin框架)
    单位时间的调度问题 —— 贪心
    Qt获取文件夹下文件
    C++ using
    QGridLayout动态添加控件
    数据库查询优化-20条必备sql优化技巧
    Django:类视图的装饰器
    使用同一个模态框进行新增和修改
    Django:使用celery处理异步任务
    jenkins:调用jenkinsAPI
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/7260088.html
Copyright © 2011-2022 走看看