我是 Struts 的新手,正在使用 Struts 进行文件上传。
客户端:它是一个 Java 程序,它使用 apache HttpClient API 访问我的 Strut 应用程序并为我提供文件。客户根据需要有时给我 .wav 文件和有时 .zip 文件,有时两者兼而有之。
服务器:Struts 应用程序从客户端应用程序获取请求并上传文件。
在这里,当我上传文件时出现问题,它使用“.tmp”扩展名上传,我想用客户端传递的相同扩展名上传。
或者还有其他方法可以检查文件客户端发送的扩展名是什么......?
我陷入了这个问题,无法继续。
请找到附加的代码并告诉我我必须做哪些修改:
服务器代码:
MultiPartRequestWrapper multiWrapper=null;
File baseFile=null;
System.out.println("inside do post");
multiWrapper = ((MultiPartRequestWrapper)request);
Enumeration e = multiWrapper.getFileParameterNames();
while (e.hasMoreElements()) {
// get the value of this input tag
String inputValue = (String) e.nextElement();
// Get a File object for the uploaded File
File[] file = multiWrapper.getFiles(inputValue);
// If it's null the upload failed
if (file != null) {
FileInputStream fis=new FileInputStream(file[0]);
System.out.println(file[0].getAbsolutePath());
System.out.println(fis);
int ch;
while((ch=fis.read())!=-1){
System.out.print((char)ch);
}
}
}
System.out.println("III :"+multiWrapper.getParameter("method"));
客户端代码:
HttpClient client = new HttpClient();
MultipartPostMethod mPost = new MultipartPostMethod(url);
File zipFile = new File("D:\\a.zip");
File wavFile = new File("D:\\b.wav");
mPost.addParameter("recipientFile", zipFile);
mPost.addParameter("promptFile", wavFile);
mPost.addParameter("method", "addCampaign");
statusCode1 = client.executeMethod(mPost);
实际上客户端被写得很长并且不能被修改,我想在服务器端识别一些东西只是为了找到扩展。
请帮忙,谢谢。