multipart/form-data からファイルをアップロードするための jsp コードがあります。
アップロード.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
このコードは機能し、ファイルをディレクトリにアップロードします。しかし、フォームから受け取った元の名前以外の名前にアップロードするときに、ファイルの名前を変更したい場合はどうでしょうか。元のファイル名を列挙として受け取るので、どうすればできますか?