文件上传处理程序 [英] File Upload handler

查看:113
本文介绍了文件上传处理程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是一个文件上传处理程序的代码
这是工作正常在我的服务器,但上传文件后,它只显示文件上传成功

,但我也想显示文件的名称已上传

  import java.io.File; 
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

public class FileUploadHandler extends HttpServlet {
private final String UPLOAD_DIRECTORY =C:/ uploads;
$ b @Override
保护无效doPost(HttpServletRequest请求,HttpServletResponse响应)
抛出ServletException,IOException {

//只处理其多部分内容
if(ServletFileUpload.isMultipartContent(request)){
try {
List< FileItem> multiparts = new ServletFileUpload(
new DiskFileItemFactory())。parseRequest(request); (FileItem item:multiparts){
if(!item.isFormField()){
String name = new File(item.getName())。getName()返回

。 ;
item.write(new File(UPLOAD_DIRECTORY + File.separator + name));


$ b //文件上传成功

request.setAttribute(message,File Uploaded Successfully);
} catch(Exception ex){
request.setAttribute(message,File Upload Failed due to+ ex);

$ b} else {
request.setAttribute(message,
对不起,这个Servlet只处理文件上传请求);


request.getRequestDispatcher(/ done.jsp)。forward(request,response);




$ b

解决方案将 item.getName()存储在一个变量中供以后使用。因为你正在使用一个循环,所以你将不得不跟踪多个文件名。

  String fileNames = ; //保存文件名列表
(FileItem item:multiparts){
if(!item.isFormField()){
fileNames + = item.getName()+;; //将文件名添加到字符串
String name = new File(item.getName())。getName();
item.write(new File(UPLOAD_DIRECTORY + File.separator + name));



.....
request.setAttribute(message,File(s)Uploaded Successfully:+ fileNames);


This is a code of File Upload Handler This is working Fine on my server but after uploading file it only displays File Uploaded successfully
but i also want to display the name of file which is uploaded

 import java.io.File;
 import java.io.IOException;
 import java.util.List;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import org.apache.commons.fileupload.FileItem;
 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
 import org.apache.commons.fileupload.servlet.ServletFileUpload;

public class FileUploadHandler extends HttpServlet {
private final String UPLOAD_DIRECTORY = "C:/uploads";

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    //process only if its multipart content
    if(ServletFileUpload.isMultipartContent(request)){
        try {
            List<FileItem> multiparts = new ServletFileUpload(
                                     new DiskFileItemFactory()).parseRequest(request);

            for(FileItem item : multiparts){
                if(!item.isFormField()){
                    String name = new File(item.getName()).getName();
                    item.write( new File(UPLOAD_DIRECTORY + File.separator + name));
                }
            }

  //File uploaded successfully

           request.setAttribute("message", "File Uploaded Successfully");
        } catch (Exception ex) {
           request.setAttribute("message", "File Upload Failed due to " + ex);
        }          

    }else{
        request.setAttribute("message",
                             "Sorry this Servlet only handles file upload request");
    }

    request.getRequestDispatcher("/done.jsp").forward(request, response);

}

}

解决方案

Store item.getName() in a variable for later use. Since you are using a loop, you'll have to keep track of multiple filenames if there are any.

   String fileNames = ""; //to keep list of filenames
   for(FileItem item : multiparts){
            if(!item.isFormField()){
                fileNames += item.getName() + "; "; //add filename to string
                String name = new File(item.getName()).getName();
                item.write( new File(UPLOAD_DIRECTORY + File.separator + name));
            }
        }
    .....
    .....
    request.setAttribute("message", "File(s) Uploaded Successfully: " + fileNames );

这篇关于文件上传处理程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆