上传文件

文件上传
1.表单提交类型为post,表单类型为enctype=“multipart/form-data
2.设置提交地址 action
3.设置表单name

/**
 * 使用注解将Servlet标识为文件上传
 *      Servlet对表单post请求封装为part对象
 */
@WebServlet("/Ser1")
@MultipartConfig
public class Ser1 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");
        //获取part对象
        Part part=req.getPart("upFile");
        /* tomcat 8 */
        //获取上传的文件名(tomcat7没有此方法)
        String fileName=part.getSubmittedFileName();
        /* tomcat 7 */
       //获取HTTP头信息headerInfo=(form-data; name="file" filename="文件名")
	String headerInfo = part.getHeader("content-disposition");
	//从HTTP头信息中获取文件名fileName=(文件名)
	String fileName = headerInfo.substring(headerInfo.lastIndexOf("=") + 2, headerInfo.length() - 1);

        //文件路径
        String filePath=req.getServletContext().getRealPath("/");
        System.out.println(filePath);
        //下载文件  存放在工程目录下out文件夹里
        part.write(filePath+"/"+fileName);
    }
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form method="post" enctype="multipart/form-data" action="Ser1">
    文件:<input id="fileInput" type="file" name="pic"><br>
    <button id="btn" type="button">确定</button>
</form>

</body>
<script type="text/javascript">
    //判断文件是否为空
    $("#btn").click(function (){
        var file= $("#fileInput").get(0).files[0];
        if(!file){
            $("#msgf").html("图片不能为空");
            return ;
        }
        $("#thisForm").submit();

    })
</script>
</html>
posted @ 2022-04-13 18:59  lwx_R  阅读(32)  评论(0编辑  收藏  举报