struts文件上传

struts文件上传

标签: JAVA框架


前提:
表单的method必须是post
表单的enctype="multipart/form-data"
提供input type=“file”类型的上传输入域

1 单文件的上传
2 多文件上传
3 上传中有问题
上传失败会转向 input的视图
错误显示 <s:actionerror/>
    4 限制上传文件的大小
    <!-- 限制上传文件的总大小 -->

    <constant name="struts.multipart.maxSize" value="10485760"></constant>
    5 限制文件的上传类型
    <interceptor-ref name="defaultStack">
    <param name="fileUpload.allowedExtensions">.jpg,.bmp,.png</param>
    </interceptor-ref>
6 覆盖掉系统自带的消息提示
在src根目录下创建fileupload.properties文件 里面配置消息提示
在xml文件中 加入
<!-- 覆盖掉默认的消息  -->
<constant name="struts.custom.i18n.resources" value="fileupload"></constant>
package com.action;

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 DemoActionupload1 extends ActionSupport{
    private String name;
    private File photo;//必须是File类型,名称对应表单的上传域的名字
    private String photoFileName;//上传文件的文件名 XXXFileName 固定写法
    private String photoContentType;//上传文件的MIME类型  XXXContentType
    public String upload(){
        System.out.println("name:"+name);
        System.out.println("photo:"+photo);
        System.out.println("photoFileName:"+photoFileName);
        System.out.println("photoContentType:"+photoContentType);
        ServletContext sc=ServletActionContext.getServletContext();
        String dir=sc.getRealPath("/wenjian");
        System.out.println(dir);
        File d=new File(dir);
        if(!d.exists()){
            d.mkdirs();
        }
        long current=System.currentTimeMillis();
        File destFile=new File(d, current+photoFileName);

        try {
            FileUtils.copyFile(photo, destFile);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return SUCCESS;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    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;
    }
}

upload.jsp

<s:actionerror/>
  <s:form action="upload1" enctype="multipart/form-data" method="post">
        <s:textfield name="name" label="名称"></s:textfield>
        <s:file name="photo" label="靓照"></s:file>
        <s:submit value="上传"></s:submit>
  </s:form>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值