文件上传完后需要进行复制解压功能,怎么直接响应,把复制解压功能放后台运行 先把这个问题说清楚点,就是现在需要上传一个挺大的.zip文件,上传完之后需要复制到别的地方,而且要解压,这样用户就需要等很久,现在是想在用户上传完压缩包后立即响应用户,用户可进行别的业务操作,而压缩包的复制和解压功能则仍在后台运行,不知道我说清楚没有,高手帮忙下,谢谢。给高分! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你这个不能在一个页面操作,可以使用:弹出窗口,iframe,div展示ajax异步操作 一般的业务是单线程的,就是在业务代码里面不用加Thread的东西所谓要多线程就是在的你业务处理逻辑代码里面在手动创建一个复制和解压的线程,start起来就不用管了,在start之后响应客户就行了 额,感谢大家,问题已经解决了,挺简单的一个问题,以前没用过所以不大会。就是用多线程,把一个解决思路的代码贴出来,大家看看有问题不。package test;import java.io.File;public class FileOperate { public static void main(String[] args) { Long begin = System.currentTimeMillis(); // 上传文件 UploadFile uploadFile = new UploadFile(); File file = uploadFile.uploadFileMethod(); // 给线程传递参数 CoppyFile coppyFile = new CoppyFile(file); UnZipFile unZipFile = new UnZipFile(file); // 创建线程 Thread coppyThread = new Thread(coppyFile); Thread unZipThread = new Thread(unZipFile); // 启动线程 coppyThread.start(); unZipThread.start(); Long end = System.currentTimeMillis(); // 响应用户请求 System.out.println("恭喜,文件上传成功,耗时:" + (end - begin) + "毫秒"); }}/** * 上传文件类 * * @author yangjd * */class UploadFile { // 文件上传 public File uploadFileMethod() { File file = new File("filePath"); System.out.println("文件上传完毕"); return file; }}/** * 复制文件类 * * @author yangjd * */class CoppyFile implements Runnable { private File file; public CoppyFile(File file) { this.file = file; } @Override public void run() { coppyFileMethod(file); } // 文件复制 public void coppyFileMethod(File file) { // 睡眠15秒钟 try { Thread.sleep(15000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("文件复制完毕"); }}/** * 解压文件类 * * @author yangjd * */class UnZipFile implements Runnable { private File file; public UnZipFile(File file) { this.file = file; } @Override public void run() { unZipFileMethod(file); } // 文件解压 public void unZipFileMethod(File file) { // 睡眠10秒钟 try { Thread.sleep(10000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("文件解压完毕"); }} HQL查询问题。查询结果是范型List吗? struts2 session 求解惑:java方向选择 jsp调用上传到服务器的文件 请问两个表怎么连接修改啊,送100! 请问如何能做到安全取出url里面的参数? ssh 增加一条记录时出错 大家都是怎么学习J2EE的?有什么经验教训? 学习J2EE怎么入门? 用过Soket请进. 菜鸟问问题 http://localhost:8080/manager/html这个里面点击发布的工程出问题
所谓要多线程就是在的你业务处理逻辑代码里面在手动创建一个复制和解压的线程,start起来就不用管了,在start之后响应客户就行了
package test;import java.io.File;public class FileOperate {
public static void main(String[] args) {
Long begin = System.currentTimeMillis(); // 上传文件
UploadFile uploadFile = new UploadFile();
File file = uploadFile.uploadFileMethod();
// 给线程传递参数
CoppyFile coppyFile = new CoppyFile(file);
UnZipFile unZipFile = new UnZipFile(file);
// 创建线程
Thread coppyThread = new Thread(coppyFile);
Thread unZipThread = new Thread(unZipFile);
// 启动线程
coppyThread.start();
unZipThread.start(); Long end = System.currentTimeMillis();
// 响应用户请求
System.out.println("恭喜,文件上传成功,耗时:" + (end - begin) + "毫秒");
}
}/**
* 上传文件类
*
* @author yangjd
*
*/
class UploadFile {
// 文件上传
public File uploadFileMethod() {
File file = new File("filePath");
System.out.println("文件上传完毕");
return file;
}
}/**
* 复制文件类
*
* @author yangjd
*
*/
class CoppyFile implements Runnable {
private File file; public CoppyFile(File file) {
this.file = file;
} @Override
public void run() {
coppyFileMethod(file);
} // 文件复制
public void coppyFileMethod(File file) {
// 睡眠15秒钟
try {
Thread.sleep(15000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("文件复制完毕");
}
}/**
* 解压文件类
*
* @author yangjd
*
*/
class UnZipFile implements Runnable {
private File file; public UnZipFile(File file) {
this.file = file;
} @Override
public void run() {
unZipFileMethod(file); } // 文件解压
public void unZipFileMethod(File file) {
// 睡眠10秒钟
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("文件解压完毕");
}
}