以下是使用多线程上传文件的实验版
public class UploadFileMutilAction extends ActionSupport
{
private File[] file;
private String[] fileFileName;
private String[] fileContentType;
private String path;
@Override
public String execute() throws Exception
{
String realPath = ServletActionContext.getServletContext().getRealPath(
path);
int poolSize = file.length;
ExecutorService es = Executors.newFixedThreadPool(poolSize);
for (int j = 0; j < poolSize; j++)
{
Runnable r = new UploadFileMutilThread(file[j], fileFileName[j],
realPath);
es.execute(r);
}
es.shutdown();
return SUCCESS;
}
public File[] getFile()
{
return file;
}
public void setFile(File[] file)
{
this.file = file;
}
public String[] getFileFileName()
{
return fileFileName;
}
public void setFileFileName(String[] fileFileName)
{
this.fileFileName = fileFileName;
}
public String[] getFileContentType()
{
return fileContentType;
}
public void setFileContentType(String[] fileContentType)
{
this.fileContentType = fileContentType;
}
public String getPath()
{
return path;
}
public void setPath(String path)
{
this.path = path;
}
}
public class UploadFileMutilThread implements Runnable
{
private File file;
private String FileName;
private String saveDir;
public UploadFileMutilThread(File files, String fileNames, String saveDir)
{
this.file = files;
FileName = fileNames;
this.saveDir = saveDir;
}
@Override
public void run()
{
File f = new File(saveDir);
if (!f.exists())
{
f.mkdirs();
}
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try
{
bis = new BufferedInputStream(new FileInputStream(file));
bos = new BufferedOutputStream(new FileOutputStream(new File(f,
FileName)));
byte[] b = new byte[2024];
int i = -1;
while ((i = bis.read(b)) != -1)
{
bos.write(b);
}
bis.close();
bos.close();
} catch (FileNotFoundException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
} finally
{
try
{
bis.close();
bos.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
}
相关推荐
在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...
这个压缩包包含了实现Struts2文件上传所需的全部jar包,这些库文件对于理解和实现文件上传功能至关重要。 首先,我们要了解Struts2文件上传的基本流程。当用户通过表单提交包含文件输入字段的请求时,Struts2框架会...
在Struts2中,文件上传功能是一个常见的需求,例如用户可能需要上传图片、文档或其他类型的文件。本教程将深入浅出地讲解如何在Struts2中实现文件上传,并提供一个简单的实例来帮助理解。 1. **Struts2文件上传概述...
Struts2 文件上传是Web开发中的一个重要功能,它允许用户从他们的本地计算机向服务器传输文件。在Struts2框架中,文件上传是通过特定的拦截器实现的,这些拦截器处理了文件上传请求并提供了安全性和大小限制。下面将...
Struts2文件上传是Web开发中常见的功能,用于允许用户在网页上选择并上传本地文件到服务器。在Java Web环境中,Struts2框架提供了一套完整的解决方案来处理文件上传请求。下面将详细介绍Struts2文件上传的核心概念、...
在Struts 2中,文件上传功能是通过使用Struts 2的插件机制来实现的,这使得开发者能够方便地处理用户上传的文件。下面将详细讨论Struts 2文件上传的相关知识点。 ### 1. Struts 2文件上传原理 文件上传是基于HTTP...
"Struts2文件上传带进度条页面无刷新"的实现涉及多个技术点,包括Struts2的文件上传插件、AJAX异步通信以及前端进度条展示。 首先,Struts2的文件上传依赖于`struts2-upload-plugin`。这个插件扩展了Struts2的核心...
在这个"Struts2之struts2文件上传详解案例struts011"中,我们将深入探讨如何实现这一功能。 首先,我们需要了解Struts2中的Action类,它是处理用户请求的核心组件。为了支持文件上传,我们需要创建一个继承自`org....