据说在以前的Servlet版本中,如果想要处理form中post过来的文件数据的话,那么还必须下载第三方的包,比如commons-fileupload等,很是麻烦。但是现在的Servlet版本中已经可以支持对file数据的直接处理,这里姑且记录下简单的用法。
Html端
前端中只要写一个正常提交的表单即可,比如下面这样:
1 | <form action="Display" method="post" enctype="multipart/form-data"> |
当然也可以用ajax的form来提交,这都无妨。
Servlet端
首先需要在Servlet类定义前加上@MultipartConfig
标注,然后在doPost方法里这么写:
1 | protected void doPost(HttpServletRequest request, HttpServletResponse response) |
这样就可以将客户上传的文件在本地保存下来了,非常简单方便(但是不知道的话还真的很麻烦)。
通常这样就足够了,但是有时候我们还需要知道文件的名字,这就稍微麻烦一点了,还得解析协议的header来获得文件名:
1 | protected void doPost(HttpServletRequest request, HttpServletResponse response) |