当前位置: 首页 > news >正文

struts1.2实现图片上传

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

Action:

public class FileUploadAction extends Action {

    /*
     * Generated Methods
     */

    /**
     * Method execute
     * @param mapping
     * @param form
     * @param request
     * @param response
     * @return ActionForward
     */
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response) {
       
            FileUploadForm fileUploadForm = (FileUploadForm) form;// TODO Auto-generated method stub
                // 取得文件对象
            FormFile file = fileUploadForm.getFile();
               //通过时间和file的文件后缀,拼写出文件名
               java.util.Date date= new java.util.Date();
              
            String fileName =date.getTime()          
              + file.getFileName().substring( file.getFileName().lastIndexOf("."));
               // 取得绝对路径
              
            System.out.println(fileName);
              
            String pathName = this.getServlet().getServletContext()
                 .getRealPath("/")
                 + "/upload/" + fileName;
               //将拼写好的文件名保存到对象中
            System.out.println(pathName);
              
              
            try {
                 // 定义输出流
                 FileOutputStream os = new FileOutputStream(new File(pathName));
                 // 开始写文件
                 os.write(file.getFileData());
                 // 关闭流
                 os.close();
                
                 return mapping.findForward("suc");
                
                } catch (FileNotFoundException e1) {
                 // TODO Auto-generated catch block
                 e1.printStackTrace();
                 return mapping.findForward("fal");
                
                } catch (Exception ex) {
                 // TODO Auto-generated catch block
                 ex.printStackTrace();
                 return mapping.findForward("fal");
                }
        }

}

 

Form:

/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.j2ee.onlineAuction.struts.form;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

import org.apache.struts.upload.FormFile;

/**
 * MyEclipse Struts
 * Creation date: 06-12-2011
 *
 * XDoclet definition:
 * @struts.form name="fileUploadForm"
 */
public class FileUploadForm extends ActionForm {
    /*
     * Generated fields
     */

    /** file property */
    private FormFile file;

    /*
     * Generated Methods
     */

    /**
     * Method validate
     * @param mapping
     * @param request
     * @return ActionErrors
     */
    public ActionErrors validate(ActionMapping mapping,
            HttpServletRequest request) {
        // TODO Auto-generated method stub
        return null;
    }

    /**
     * Method reset
     * @param mapping
     * @param request
     */
    public void reset(ActionMapping mapping, HttpServletRequest request) {
        // TODO Auto-generated method stub
    }

    /**
     * Returns the file.
     * @return FormFile
     */
    public FormFile getFile() {
        return file;
    }

    /**
     * Set the file.
     * @param file The file to set
     */
    public void setFile(FormFile file) {
        this.file = file;
    }

}

JSP:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
 
<html>
    <head>
        <title>JSP for FileUploadForm form</title>
    </head>
    <body>
        <html:form action="/fileUpload" enctype="multipart/form-data">
            file : <html:file property="file"/><html:errors property="file"/><br/>
            <html:submit/><html:cancel/>
        </html:form>
    </body>
</html>


转载于:https://my.oschina.net/odysuess/blog/23755

相关文章:

  • 进程管理工具glances的使用
  • Acunetix Web Vulnerability Scanner
  • “无价”的美妙——阅《无价》有感
  • fedora21安装ruby-rails
  • [实战运维小技巧]-解决perl命令执行或编译问题
  • Attractive Music Store OpenCart 自适应主题模板 ABC-0237
  • Bitcoin虚拟货币原理
  • 典型用户及用户场景分析
  • 接口和子接口
  • 如何做一个简洁风格的PPT模板
  • PHP学习笔记(2)-语法和数据类型
  • 选择下拉列表最大索引值 Select From List By Max Index
  • WCF技术的不同应用场景及其实现分析
  • OC开发_代码片段——代码编写简单的tableViewCell
  • Log4j 配置最全说明
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • js算法-归并排序(merge_sort)
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Linux下的乱码问题
  • miaov-React 最佳入门
  • mockjs让前端开发独立于后端
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Terraform入门 - 1. 安装Terraform
  • Vue2.x学习三:事件处理生命周期钩子
  • 记录一下第一次使用npm
  • 聚类分析——Kmeans
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 利用jquery编写加法运算验证码
  • 前嗅ForeSpider采集配置界面介绍
  • 提醒我喝水chrome插件开发指南
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • 你对linux中grep命令知道多少?
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (二)PySpark3:SparkSQL编程
  • (算法)Game
  • (原)Matlab的svmtrain和svmclassify
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)关于pipe()的详细解析
  • (转)详解PHP处理密码的几种方式
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .NET 设计模式初探
  • .netcore 获取appsettings
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • :“Failed to access IIS metabase”解决方法
  • [ 常用工具篇 ] POC-bomber 漏洞检测工具安装及使用详解
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择
  • [1]-基于图搜索的路径规划基础
  • [C/C++随笔] char与unsigned char区别
  • [Godot] 3D拾取
  • [Intel Edison开发板] 05、Edison开发基于MRAA实现IO控制,特别是UART通信