0

我有一个 jsp 代码来从 multipart/form-data 上传文件..

上传.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:/upload目录。但是,如果我们想在上传时更改文件名而不是从表单接收的原始名称,该怎么办。怎么做,因为它接收原始文件名作为枚举

4

1 回答 1

0

像这样更改您的代码。

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

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

    filename.renameTo("newName");
}

代替 newName 给出您想要的值:)

于 2018-02-28T10:37:35.497 回答