【发布时间】:2023-03-14 14:11:01
【问题描述】:
我需要制作一个用户可以上传大文件 (>200Mo) 的表单。我想在单独的线程中启动上传,以便用户可以启动 3-4 次上传,然后执行其他操作。我的问题是生成的 .tmp 文件在我运行辅助线程时被删除。 我用的是 Struts2。
struts2 给了我什么:
private String uploadContentType;
private String uploadFileName;
private File upload;
我使用它的构造函数将这些信息传输到我的线程
MyThread thread=new MyThread (sourceName, uploadFileName, upload, user, database);
thread.start();
在run()方法中:
System.out.println("Src File name: " + myFile);
System.out.println("Dst File name: " + myFileFileName);
File destFile =new File(UPLOAD_DIRECTORY, myFileFileName);
FileUtils.copyFile(myFile, destFile);
还有错误:
Src Filename:
C:\***myeclipsepath***\upload_1949ed75_1002_4ccf_b198_
25faff66563a_00000003.tmp
Dst File name: books.xml
java.io.FileNotFoundException:
C:\***myeclipsepath***\upload_1949ed75_1002_4ccf_b198_
25faff66563a_00000003.tmp (Le fichier spécifié est introuvable)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at org.apache.commons.io.FileUtils.doCopyFile(FileUtils.java:1068)
at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1021)
at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:968)
at bo.threads.MyThread .run(MyThread .java:68)
当我逐步调试时,我看到 .tmp 文件在我调用 thread.start() 时消失了。
那么我怎样才能在主线程之外的其他线程上上传文件呢?
【问题讨论】:
标签: java multithreading web-applications struts2 upload