2013-05-12 115 views
0

我有一個jsp代碼上傳從多部分/格式數據的文件..上傳文件與多部分請求(請求, 「C:/」)

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); 
}%> 

測試。 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:/上傳directory..But我想改變文件,而名稱上傳到它從原形接收的原始名稱以外的..如何做,因爲它接收原始文件名爲枚舉.. ??

+0

上有SO alredy許多類似的問題。 'http://stackoverflow.com/questions/2422468/how-to-upload-files-to-server-using-jsp-servlet' 甚至'http://www.tutorialspoint.com/jsp/jsp_file_uploading。 HTM」 – 2013-05-12 09:31:44

回答

0

像這樣改變你的代碼。

while(files.hasMoreElements()) 
{ 
    String upload=(String)files.nextElement(); 

    File filename=new File(mrequest.getOriginalFileName(upload)); 

    filename.renameTo("newName"); 
} 
在了newName的地方給你想要的值:)