栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

servlet上传图片,当前时间的毫秒值为图片名称

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

servlet上传图片,当前时间的毫秒值为图片名称

servlet步骤:

1.复制layui中的文件上传代码
2.修改端口
layui提供的端口必须要替换掉,在idea中编写servlet,将编写的servlet接口存在到,layui下边的 url:""中
3.修改 field文本域的名称 必须要与后台servlet一直 
4.早serv中使用req.getPart获取前端页面中的field的值
5.使用part.getHeader("Content-Disposition");获取头部信息
6.通过lastindexof 获取最后一个“=”的索引值,在使用substring()参数获取后缀名,在将想要修改的名字使用字符串拼接
7.创建File对象,判断创建的文件是否存在,不存在则创建
8.使用part.write(path);上传路径,如果有虚拟路径,则String imgUrl="img/"+fikeName;定义一个变量名,使用虚拟变量拼接获取到的文件名称
9.创建HashMap对象
10.使用writer输出数据,关流

servlet代码:

package com.xiexin.controller;

import com.alibaba.fastjson.JSONObject;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;

@WebServlet(name = "PicUoLoadServlet",urlPatterns = "/PicUoLoadServlet")
@MultipartConfig
public class PicUoLoadServlet extends HttpServlet {
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //修正编码
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=UTF-8");
        System.out.println("开始上传图片");

        Part part = request.getPart("userimg");//收取的不是参数,是文件
        System.out.println("part"+part);


        String header = part.getHeader("Content-Disposition");
        //在编写文件上传时,可以刷新页面,获取Content-Disposition 这个参数很重要
        System.out.println("header"+header);
               
        int i = header.lastIndexOf("=");
        String s = header.substring(i);
        System.out.println("i = "+i);
        //当前时间的毫秒值
        Calendar calendar = Calendar.getInstance();
        long time = calendar.getTimeInMillis();

        System.out.println("time="+time);

        //第一种方式截取图片名称
        String fikeName = header.substring(i + 2, header.length() - 1);
        System.out.println("fikeName"+fikeName);
        //获取.jpg后缀名的位置 i1
        int i1 = fikeName.lastIndexOf(".");
        System.out.println("i1 = "+i1);
        String houzui = fikeName.substring(i1, fikeName.length());
        System.out.println("houzui"+houzui);

        //拼接
        String quanming = time + houzui;
        System.out.println("quanming = "+ quanming);
        //System.out.println("substring = "+s);
        //图片存储位置的四种
        //1.存在项目里
        //2存在 服务器硬盘
        //3 存在 阿里云/七牛云
        //4 搭建nginx 服务器   fastDFS文件系统 存储照片文件
        // String realPath = request.getServletContext().getRealPath("upload");
        String realPath= "E:\img";
        System.out.println("realPath = "+realPath);
        File file = new File(realPath);


        if (!file.exists()) {
                //判断创建的文件是否存在
            file.mkdirs();
        }
        String path = realPath+"\"+quanming;
        System.out.println(path+"path");


        //开始上传
        part.write(path);
        System.out.println("图片上传成功 path="+path);
        String imgUrl="img/"+fikeName;
        Map map=new HashMap<>();
        map.put("code", 0);
        map.put("msg", "上传成功");
        map.put("data",imgUrl);


        String s1 = JSONObject.toJSonString(map);
        PrintWriter writer = response.getWriter();
        writer.println(s1);
        writer.close();
    }
}

html代码:




    
    Title
    
    


上传你的头像

效果图(由于本人不会制作gif动态,所以效果图以静态图片显示):

配置文件/图片上传的layui代码可自行去layui官网复制使用,layui的官网网址:通用轮播 - 在线演示 - Layui (funadmin.com)z

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/591025.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号