我有一个jsp代码从multipart / form-data上传文件..
upload.jsp
<%@ page import="java.io.*"%>
<%@page import="com.oreilly.servlet.MultipartRequest" %>
<%@ page import="java.util.*" %>
<%
try
{
MultipartRequest mrequest = new MultipartRequest(request, "C:/uploads");
String file_name=mrequest.getParameter("fname");//recieve fname
Enumeration files = mrequest.getFileNames();
while(files.hasMoreElements() )
{
String upload = (String)files.nextElement();
String filename = mrequest.getFilesystemName(upload);
System.out.println(filename);
}
}
catch(Exception ex)
{
System.out.println("Error creating file: " + ex );
}%>
的test.html
<HTML>
<BODY>
<FORM ENCTYPE="multipart/form-data" ACTION="upload.jsp" METHOD="POST">
choose file <input type="file" name="file">
name for file <input type="text" name="fname">
<input type="submit" value="submit">
</FORM>
</BODY>
此代码可以工作并将文件上传到c:/upload
目录。但是,如果我们想要在上传到从表单接收的原始名称以外的名称时更改文件名称,该怎么办?怎么做呢,因为它接收原始文件名作为枚举?
答案 0 :(得分:0)
像这样更改你的代码。
while(files.hasMoreElements())
{
String upload=(String)files.nextElement();
File filename=new File(mrequest.getOriginalFileName(upload));
filename.renameTo("newName");
}
在newName的位置给出你想要的值:)