使用 IDEA 软件 实现文件上传

结合JSP,form表单及Servlet,实现文件上传

JSP界面(HTML界面)配置

     实现文件上传需要配置form表单 基本设置,

     其中固定两个值是——提交方式只能为post,enctype是固定的

<form id="uploadFile" method=post enctype="multipart/form-data" onsubmit="return upload()">
    <input type="file" id="wenJian"/>
    <input type="submit" value="文件上传" name="subUpload"/>
</form>

二 Servlet配置

     首先必须先设置如下代码

@WebServlet(name = "ShopServlet",urlPatterns = "/ShopServlet")
@MultipartConfig(maxFileSize = 1024*1024*2)    //标识Servlet支持文件上传,设置文件上传大小

//第一点就不多说了
//第二点MultipartConfig表示支持文件文件上传,如果没有注解,无法获取文件上传的内容
//maxFileSize和注解一起使用,表示设置上传文件最大大小,1024*1024*2如表示文件大小为2MB

三 核心-实现上传文件

//1、设置上传文件类型(图片类型)(可以设置允许上传的图片格式,后面介绍分割前缀和后缀)
private static String ALLOW_IMG_TYPE = "image/.png;image/.jpg;image/.gif;image/.jpeg";

//2、获取注解里设置的值
private MultipartConfig config = ShopServlet.class.getAnnotation(MultipartConfig.class);

//3、核心代码
{
    private void updShop(HttpServletRequest request) throws IOException {

    try{
        1、获取文件上传路径(这里是绝对路径)
        String uploadFilePath = "D:\\images\\";

        2、创建File对象,判断该文件夹是否存在,不存在创建文件夹
        File file = new File(uploadFilePath);
        if (!file.exists){
            file.mkdirs();      //mkdirs()表示创建
        }

        3、创建Part对象,Part在这里就表示上传的文件
        Part part = request.getPart("subUpload");        //JSP界面设置的文件上传name属性
        
        4、获取上传的文件名称
        String fileName = part.getSubmitterFileName();   //getSubmitterFileName()用于获取上传的文件

        5、获取上传文件的格式类型
        String houZhui = part.getContentType();          //getContentType()用于获取文件的后缀如.jpg
        
        6、List<String> list = Arrays.asList(ALLOW_IMG_TYPE.split(";"));
                                                         //这里将允许上传的文件格式以指定字符分割为字符串,通过Arrays.asList将其转为数组,将其放入字符串格式的集合中

        7、通过集合.contains()方法判断上传文件格式是否符合
        if (list.contains(houZhui)){}

        8、通过part对象.write()将上传文件写入指定文件夹中
        part.write(uploadFilePath + fileName + houZhui);

    }catch(IllegalStateException ex){
        //IllegalStateException 用于处理上传文件大小超过指定文件大小异常
        e.printStackTrace();
    }     
  }
}

四、扩展,上传文件使用UUID产生随机数写入文件夹中

String uuidRandom = String.valueOf(UUID.randomUUID().toString().replace("-","").substring(0,4));

/*
通过UUID.randomUUID()产生随机数,因为UUID产生的数字前后都有-作为分割,
所以使用replace()方法进行替换,
并通过substring(0,4)截取UUID的四位随机数,
得到UUID的结果 如 4j22
*/

这就是文件上传的步骤和UUID的扩展使用,配上我上传文件的JSP界面样式

java 上传图片获取 javaee上传图片_servlet