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

Javaweb开发,提交文章中的图片上传功能2021.11.25

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

Javaweb开发,提交文章中的图片上传功能2021.11.25

1.已经设置好富文本编辑器后,接下来来实现其中的图片上传功能。

第一步,导入相关jar包,在下载的kindeditor文件中,jsp文件夹下,lib文件下的三个jar包复制

粘贴到WEB-INF下的lib目录

 第二步,部署相关的servlet,在servlet下新建UploadImageServlet,

我们使用到apache commons fileupload包来实现文件上传

这个包的功能可以在官网上学习,搜索apache commons fileupload。

主页有user guide,点击可以查看实现功能的原理

//创建硬盘存储
DiskFileItemFactory factory = new DiskFileItemFactory();

//设置临时存放路径
ServletContext servletContext = this.getServletConfig().getServletContext();
File repository = (File) servletContext.getAttribute("javax.servlet.context.tempdir");
factory.setRepository(repository);


// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);

//解析用户的请求
List items = upload.parseRequest(request);

还要规定上传文件大小限制

接下来写代码

try{
            DiskFileItemFactory factory = new DiskFileItemFactory();
            factory.setSizeThreshold(1024*10);
            factory.setRepository(tmpFile);
            ServletFileUpload upload = new ServletFileUpload(factory);
            //最大允许上传大小
            upload.setFileSizeMax(1024*1024*3);
            //可能会上传多个请求,利用item来进行遍历查询
            List items = upload.parseRequest(request);
            Iterator iter = items.iterator();
            String message = "";
            while(iter.hasNext()){
                FileItem item = iter.next();
                String fileName = item.getName();
                long fileSize = item.getSize();
                if(!item.isFormField()){
                    //检查文件大小
                    if(item.getSize()>1024*1024*3){
                        message = message + "文件" + fileName + "上传超过限制" + upload.getFileSizeMax();
                        obj.put("error",1);
                        obj.put("message",message);
                    }else {
                        //获取文件的扩展名
                        String fileExt = fileName.substring(fileName.lastIndexOf(".")+1).toLowerCase();
                        //文件名重写
                        SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
                        String newFileName = df.format(new Date()) + "_" + new Random().nextInt(1000) + "." + fileExt;
                        File uploadedFile = new File(savePath,newFileName);
                        item.write(uploadedFile);
                        String url = "/upload/" + newFileName;
                        obj.put("error",0);
                        obj.put("url",url);
                    }
                }
            }
        } catch (FileUploadException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }

如果出现upload文件夹不存在的情况,可以将web设置为静态资源

 

 图片上传成功

 

 

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

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

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