利用Struts上传文件

在利用struts2完成上传文件到服务器时,遇到获取不到文件名

原因是在Action中的属性名没有和jsp中的属性名匹配

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
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>My JSP ‘main.jsp‘ starting page</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">
    -->

  </head>

  <body>
    <h1>上传文件</h1>
   <form action="upload" method="post" enctype="multipart/form-data">
   请选择文件:<input type="file" name="file"/>
   <input type="submit" value="提交"/>
   </form>
  </body>
</html>

Action:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class Upload extends ActionSupport{

    private File file;
    private String fileContentType;
    private String fileFileName;
    public File getFile() {
        return file;
    }
    public void setFile(File file) {
        this.file = file;
    }
    public String getFileContentType() {
        return fileContentType;
    }
    public void setFileContentType(String fileContentType) {
        this.fileContentType = fileContentType;
    }

    public String getFileFileName() {
        return fileFileName;
    }
    public void setFileFileName(String fileFileName) {
        this.fileFileName = fileFileName;
    }
    public String upload(){
        System.out.println(this.fileContentType);
        System.out.println(this.fileFileName);

        InputStream is=null;
        try {
            is=new FileInputStream(file);
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }

        String path=ServletActionContext.getServletContext().getRealPath("/");
        System.out.println(path);

        File toFile=new File(path, this.getFileFileName());

        OutputStream os=null;
        try {
            os=new FileOutputStream(toFile);
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }

        byte[] buffer=new byte[1024];
        int length=0;
        try {
            while((length=is.read())>0){
                os.write(buffer, 0, length);
            }
            is.close();
            os.close();
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }
        return SUCCESS;
    }

}

Action中该这样配置

private File file;
 private String fileContentType;
 private
String fileFileName;

ContentType和FileName是固定的,前缀为<input>中的name的值

时间: 2024-10-02 10:41:12

利用Struts上传文件的相关文章

利用put上传文件到服务器

#import "KUViewController.h" #import "KUProgress.h" @interfaceKUViewController ()<NSURLSessionTaskDelegate> //下载进度的类,继承UIview @property (weak, nonatomic) IBOutlet  KUProgress *progressView; @end @implementation KUViewController -

php 利用socket上传文件

php 利用socket上传文件 张映 发表于 2010-06-02 分类目录: php 一,利用fsockopen来上传文件 以前我写过一篇关于socket通信原理的博文http://blog.51yip.com/php/673.html有兴趣的朋友可以看看,前面讲的那篇博文,socket的服务器和客户端都是要用php命令来运行的.平常我们上传文件是浏览本地文件,通过一个php程序将文件上传一个地方,这个时候我们用php命令来运行php程序就不方便了.这个时候我们可以用fsockopen来打开

struts 上传文件 Dynavalidatorform 实例

一.相关jar包     一个空struts工程的jar包:    另上传文件的两个jar包: 二.页面 1.上传页面upload.jsp 1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Tra

shell中利用ftp 上传文件夹功能

我们知道ftp 只能用来上传或者下载文件,一次单个或者多个,怎么实现将文件夹的上传和下载呢? 可以利用先在remote ip上建立一个相同的文件夹目录,然后将文件放到各自的目录中去 1.循环遍历出要上传的文件夹中的文件夹目录 2.遍历出每个文件夹下的文件 3.逐一上传文件 ftp 命令 图中有众多的交互,我们不想让他显示这些交互 可以使用参数 屏蔽掉 ftp [-v] [-n] [-i] [-d] [-g] [-s:filename] [-a] [-w:windowsize] [computer

Struts上传文件总结

一.上传文件过程(以上传头像为例) 1.头像文件通过jsp的表单提交到add.action进行处理 注意 1)表单的enctype属性设置为multipart/form-data 2)上传方式为post方法 <form id="form" name="form" action="${basePath}nsfw/user_add.action" method="post" enctype="multipart/f

springmvc利用jqueryupload上传文件,后台处理方法

public void importIdentifySchemeFile(Integer id,Integer type,HttpServletRequest request, HttpServletResponse response){ PrintWriter out = null;          try {              //初始化变量              InputStream stream = null;              String ret_fileNa

利用 git 上传文件到 github

git 常用命令汇总 git config --global user.name "" git config -- global user.email "" git config --list  (查看配置详情) git status   (查看当前仓库状态) git add   (将工作区中的文件添加到暂存区) git commit -m"description"   (将暂存区的文件提交到本地仓库,-m 后添加的是对文件的注释或解释说明) g

Struts上传文件

编写jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title></title> </head&

struts 上传文件

文件上传的时候struts会使用默认18个拦截器中的<interceptor name="fileUpload" class="org.apache.struts2.interceptor.FileUploadInterceptor"/>进行处理. 文件上传Action类: Action类中定义三个属性: private File file1; 对应表单:<input type="file" name="file1&q