java中怎么把文件上传到服务器的指定路径

时间:2021-12-13 12:16:24
java中怎么把文件上传到服务器的指定路径,急,在线等大牛

11 个解决方案

#2


struts2里面实现很简单

#3


手工的话  直接new File(path);

#4


zhichixiah hah 

#5


String realpath = ServletActionContext.getServletContext().getRealPath("/upload") ;//获取服务器路径
        String[] targetFileName = uploadFileName;
        for (int i = 0; i < upload.length; i++) {
           File target = new File(realpath, targetFileName[i]);
              FileUtils.copyFile(upload[i], target); 
              //这是一个文件复制类copyFile()里面就是IO操作,如果你不用这个类也可以自己写一个IO复制文件的类    
         } 

其中private File[] upload;// 实际上传文件

    private String[] uploadContentType; // 文件的内容类型

    private String[] uploadFileName; // 上传文件名

这三个参数必须这样命名,因为文件上传控件默认是封装了这3个参数的,且在action里面他们应有get,set方法

#6


楼上的 不错..

#7


引用 5 楼 yanyuegongzuoshi 的回复:
String realpath = ServletActionContext.getServletContext().getRealPath("/upload") ;//获取服务器路径
  String[] targetFileName = uploadFileName;
  for (int i = 0; i < upload.length; i++) {
  File target = ……

啥也不说了,标准代码

#8


public static synchronized void upload(HttpServletRequest request) {
path = request.getRealPath(request.getContextPath());
try {
DefaultFileItemFactory factory = new DefaultFileItemFactory();
DiskFileUpload up = new DiskFileUpload(factory);
List<FileItem> ls = up.parseRequest(request);
for (FileItem fileItem : ls) {
if (fileItem.isFormField()) {
String FieldName = fileItem.getFieldName();
// getName()返回的是文件名字 普通域没有文件 返回NULL
// String Name = fileItem.getName();
String Content = fileItem.getString("utf-8");
request.setAttribute(FieldName, Content);
} else {

String nm = fileItem.getName().substring(
fileItem.getName().lastIndexOf("\\") + 1);
File mkr = new File(path, nm);
if (mkr.createNewFile()) {
path = path + File.separator + nm;
fileItem.write(mkr);// 非常方便的方法
}
}
}
} catch (Exception e) {
e.printStackTrace();
}

}

#9


String pathString = request.getRealPath("");
String path = pathString.substring(0, pathString.length() - 5);

path获取服务器tomcat路径  然后传到相应的地方

#10


可是struts1不能用啊!

#11


Richfaces的上传组件更简单

#1


#2


struts2里面实现很简单

#3


手工的话  直接new File(path);

#4


zhichixiah hah 

#5


String realpath = ServletActionContext.getServletContext().getRealPath("/upload") ;//获取服务器路径
        String[] targetFileName = uploadFileName;
        for (int i = 0; i < upload.length; i++) {
           File target = new File(realpath, targetFileName[i]);
              FileUtils.copyFile(upload[i], target); 
              //这是一个文件复制类copyFile()里面就是IO操作,如果你不用这个类也可以自己写一个IO复制文件的类    
         } 

其中private File[] upload;// 实际上传文件

    private String[] uploadContentType; // 文件的内容类型

    private String[] uploadFileName; // 上传文件名

这三个参数必须这样命名,因为文件上传控件默认是封装了这3个参数的,且在action里面他们应有get,set方法

#6


楼上的 不错..

#7


引用 5 楼 yanyuegongzuoshi 的回复:
String realpath = ServletActionContext.getServletContext().getRealPath("/upload") ;//获取服务器路径
  String[] targetFileName = uploadFileName;
  for (int i = 0; i < upload.length; i++) {
  File target = ……

啥也不说了,标准代码

#8


public static synchronized void upload(HttpServletRequest request) {
path = request.getRealPath(request.getContextPath());
try {
DefaultFileItemFactory factory = new DefaultFileItemFactory();
DiskFileUpload up = new DiskFileUpload(factory);
List<FileItem> ls = up.parseRequest(request);
for (FileItem fileItem : ls) {
if (fileItem.isFormField()) {
String FieldName = fileItem.getFieldName();
// getName()返回的是文件名字 普通域没有文件 返回NULL
// String Name = fileItem.getName();
String Content = fileItem.getString("utf-8");
request.setAttribute(FieldName, Content);
} else {

String nm = fileItem.getName().substring(
fileItem.getName().lastIndexOf("\\") + 1);
File mkr = new File(path, nm);
if (mkr.createNewFile()) {
path = path + File.separator + nm;
fileItem.write(mkr);// 非常方便的方法
}
}
}
} catch (Exception e) {
e.printStackTrace();
}

}

#9


String pathString = request.getRealPath("");
String path = pathString.substring(0, pathString.length() - 5);

path获取服务器tomcat路径  然后传到相应的地方

#10


可是struts1不能用啊!

#11


Richfaces的上传组件更简单