1.编写上传页面

2.编写动作方法

import java.io.File;
import java.io.IOException;

import javax.servlet.ServletContext;

import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class upload1Action extends ActionSupport{
//表单上提供的字段
private String username;
private File photo;
//struts2在文件上传时提供的属性
private String photoFileName;//上传的文件名。上传字段名称+FileName 注意大小写
private String photoContentType;//上传文件的MIME类型。上传字段名称+ContentType 注意大小写

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public File getPhoto() {
return photo;
}

public void setPhoto(File photo) {
this.photo = photo;
}

public String getPhotoFileName() {
return photoFileName;
}

public void setPhotoFileName(String photoFileName) {
this.photoFileName = photoFileName;
}

public String getPhotoContentType() {
return photoContentType;
}

public void setPhotoContentType(String photoContentType) {
this.photoContentType = photoContentType;
}

public String upload(){
//1.拿到ServletContext
ServletContext application = ServletActionContext.getServletContext();
//2.调用realPath方法,获取根据一个虚拟目录得到的真实目录
String filePath = application.getRealPath("/WEB-INF/file");
//3.如果这个真实的目录不存在,需要创建
File file = new File(filePath);
if(!file.exists()){
file.mkdirs();
}
//4.把photo存过去
//拷贝:把photo的临时文件复制到指定的位置。注意:临时文件还在
//FileUtils.copyFile(photo, new File(file,photoFileName));

//剪切:把临时文件剪切指定的位置,并且给他重命名。 注意:临时文件没有了
photo.renameTo(new File(file,photoFileName));

return null;
}

}

3.配置struts

实现上传文件

注意:上传的文件会在tomcat文件夹下  不是在你项目所在的地方   也就是服务器的位置

在上传的过程总会遇到文件的类型、文件大小等问题

所以我们得做约束

约束文件类型

在过滤器中添加类型

约束文件大小

如果大于50k就会报错

struts2从浅至深(五)上传与下载的更多相关文章

  1. Struts2第六篇【文件上传和下载】

    前言 在讲解开山篇的时候就已经说了,Struts2框架封装了文件上传的功能--..本博文主要讲解怎么使用Struts框架来完成文件上传和下载 回顾以前的文件上传 首先,我们先来回顾一下以前,我们在we ...

  2. Struts2基础学习(六)—文件的上传和下载

    一.文件的上传 1.单个文件上传      Struts2使用拦截器完成了文件的上传,而且底层使用的也是FileUpload开源组件. 客户端注意事项: (1)method="post&qu ...

  3. struts2一个和多个文件上传及下载

    struts2的文件上传相比我们自己利用第三方jar包(commons-fileupload-1.2.1.jar   commons-io-1.3.2.jar )要简单的多,当然struts2里面也是 ...

  4. Struts2学习(六)———— 文件上传和下载

    一.单文件上传 在没学struts2之前,我们要写文件上传,非常麻烦,需要手动一步步去获取表单中的各种属性,然后在进行相应的处理,而在struts2中就不需要了,因为有一个fileUpload拦截器帮 ...

  5. struts2学习(14)struts2文件上传和下载(4)多个文件上传和下载

    四.多个文件上传: 五.struts2文件下载: 多个文件上传action com.cy.action.FilesUploadAction.java: package com.cy.action; i ...

  6. Struts2入门(七)——Struts2的文件上传和下载

    一.前言 在之前的随笔之中,我们已经了解Java通过上传组件来实现上传和下载,这次我们来了解Struts2的上传和下载. 注意:文件上传时,我们需要将表单提交方式设置为"POST" ...

  7. struts2学习笔记之十:文件上传

    Struts2的上传 1.Struts2默认采用了apache commons-fileupload 2.Struts2支持三种类型的上传组件 3.需要引入commons-fileupload相关依赖 ...

  8. struts2文件上传和下载

    1. struts系统中的拦截器介绍 过滤器:javaweb中的服务器组件,主要针对的请求和响应进行拦截. 拦截器:主要针对方法的调用,进行拦截器,当使用代理对象调用某个方法时候 对方法的调用进行拦截 ...

  9. struts2整合CKEditor和CKFinder实现上传

    上一篇文章给大家分享了CKEditor+CKFinder+JSP实现了在线编辑器上传图片的功能,这里在给大家分享一下如何在前面的基础上在struts2下实现这样的功能. 实现与Struts2的整合,整 ...

  10. Struts2 之 实现文件上传和下载

    Struts2  之 实现文件上传和下载 必须要引入的jar commons-fileupload-1.3.1.jar commons-io-2.2.jar 01.文件上传需要分别在struts.xm ...

随机推荐

  1. InitComponent的使用

    网页中的数据,有些是不在网页上改变的,像一些个人信息,比如:头像,当前用户名,友情链接等等,每次请求该页面都要重新加载,这样很消耗服务器资源,会降低服务器的性能,这个时候我们可以把这些不变的信息,统一 ...

  2. JAVA学习(七)__Spring的@Autowired注入规则

    @Autowired 默认是按照byType进行注入的,但是当byType方式找到了多个符合的bean,又是怎么处理的? 经过一些代码的测试,我发现,Autowired默认先按byType,如果发现找 ...

  3. fm 讲解加代码

    转自: 博客 http://blog.csdn.net/google19890102/article/details/45532745/ github https://github.com/zhaoz ...

  4. poi转geohash

    import geohashimport sysfor line in sys.stdin: fields = line.strip().split('\t') hostid,POS_TIME,POS ...

  5. java.lang.NullPointerException - 如何处理空指针异常

    当应用程序试图null在需要对象的情况下使用时抛出.这些包括: 调用null对象的实例方法. 访问或修改null对象的字段. 把长度null当作一个数组. 像访问或修改null阵列一样访问或修改插槽. ...

  6. EasyUI_tabs和layout布局, 点击链接打开标签, 重复点击选中标签

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  7. 【校招面试 之 剑指offer】第10-3题 矩阵覆盖问题

    题目:我们可以使用2✖️1的小矩形横着或者竖着去覆盖更大的矩形.请问用8个2✖️1的小矩形无重叠地覆盖一个2✖️8的大矩形,共有多少种方法? 分析:当放第一块时(假定从左边开始)可以横着放,也可以竖着 ...

  8. python之文件操作read

    #open函数,该函数用于文件处理,文件操作一共就有三种方法,打开文件#关闭文件, #先来说下打开文件,打开文件的模式有下面几种# 1.r,只读模式 f = open('test.log','r',e ...

  9. 安装Oracle客户端寻找配置文件tnsnames.ora

    # tnsnames.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1\network\admi ...

  10. [leetcode]392. Is Subsequence 验证子序列

    Given a string s and a string t, check if s is subsequence of t. You may assume that there is only l ...