Y_c_d 2016-08-03 11:00 采纳率: 0%
浏览 1886

怎样才能将Struts2上传文件的目录更改成是在当前项目下的文件夹中,而不是在tomcat里?

纠结了一天,怎么也改不了路径,求大神帮忙!!

Java代码:
package com.action;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.util.List;

import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.sun.net.httpserver.Authenticator.Success;
public class FileUpLodAction extends ActionSupport{

private final static String uplod_url = "/Affile";  

private List<File> file; 

private List<String> fileFileName;    

private List<String> fileFileContentType;

public List<File> getFile() {
    return file;
}
public void setFile(List<File> file) {
    this.file = file;
}
public List<String> getFileFileName() {
    return fileFileName;
}
public void setFileFileName(List<String> fileFileName) {
    this.fileFileName = fileFileName;
}
public List<String> getFileFileContentType() {
    return fileFileContentType;
}
public void setFileFileContentType(List<String> fileFileContentType) {
    this.fileFileContentType = fileFileContentType;
}
public static String getUplodUrl() {
    return uplod_url;
}    

public void getUplod(int i) throws Exception{
    InputStream is = new FileInputStream(file.get(i));  
    String root = ServletActionContext.getServletContext().getRealPath(uplod_url); 
    //上传的文件  
    File uploadFile = new File(root, this.getFileFileName().get(i)); 
    OutputStream os= new FileOutputStream(uploadFile);  
    byte [] buffer = new byte[1024*1024];  
    int length;  
    while((length = is.read(buffer))> 0){  
        os.write(buffer,0,length);  
    }  
    if(is!=null)  
    is.close();  
    if(os!=null)  
    os.close();
}
  public String uplod(){
      for(int i=0;i<file.size();i++){
          try {
            this.getUplod(i);
        } catch (Exception e) {
            e.printStackTrace();
        }
      }
      return "success";
  }

}

Struts2配置文件:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">



<!-- 文件上传 -->

<!--index页面有跳转成功的提示-->
/index.jsp


jsp代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">




/s:file


/s:submit

/s:form


  • 写回答

1条回答 默认 最新

  • unauthorized401 2016-08-03 11:41
    关注

    struts2可以在struts.xml中定义临时存储上传文件的路径,如下:

     <constant name="struts.multipart.saveDir" value="d:\"></constant>
    
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器