文档章节

Netty聊天之发送图片

Cobbage
 Cobbage
发布于 2018/11/11 20:10
字数 399
阅读 23
收藏 0

代码示例

  1. 效果图:

  1. 操作流程

这里是借助layUi的富文本框。

插入图片的时候有个上传的动作,后台保存到本地然后把项目的路径返回到前端

最后传输到后台netty的是图片路径

  1. 工具

    使用layui的富文本框

	 layedit.set({
		                uploadImage: {
		                     url: '${httpServletRequest.getContextPath()}/fileUpload/imageUpload' //接口url
		                    ,type: 'post' //默认post
		                }
		            });

后端文件接收

public String ckeditorUpload(HttpServletRequest request,@RequestParam("file") MultipartFile file) throws Exception {
		//获取跟目录
		File path = new File(ResourceUtils.getURL("classpath:").getPath());
		if(!path.exists()) path = new File("");
		System.out.println("path:"+path.getAbsolutePath());

		//如果上传目录为/static/images/upload/,则可以如下获取:
		File upload = new File(path.getAbsolutePath(),"static/images/upload/");
		if(!upload.exists()) upload.mkdirs();
		System.out.println("upload url:"+upload.getAbsolutePath());
		
		// 获取文件名
        String fileName = file.getOriginalFilename();
        // 获取文件的后缀名
        String suffixName = fileName.substring(fileName.lastIndexOf("."));
        //实际处理肯定是要加上一段唯一的字符串(如现在时间),这里简单加 cun
       String uuid = UUID.randomUUID().toString().replace("-", "").toLowerCase();
        String newFileName = uuid + suffixName;
        //使用架包 common-io实现图片上传
        FileUtils.copyInputStreamToFile(file.getInputStream(), new File(upload.getAbsolutePath()+File.separator + newFileName));
        //实现图片回显,基本上是固定代码,只需改路劲即可
        Map<String,Object> resultMap=new HashMap<String,Object>();
        Map<String,Object> fileMap=new HashMap<String,Object>();
        resultMap.put("code", "0");
        resultMap.put("msg", "上传成功");
        resultMap.put("data", fileMap);
        fileMap.put("src", request.getContextPath()+File.separator +"static/images/upload/"+ newFileName);
        fileMap.put("title", newFileName);
        ObjectMapper mapper = new ObjectMapper();
        String result=mapper.writeValueAsString(resultMap);
        return result;
    }

© 著作权归作者所有

共有 人打赏支持
Cobbage

Cobbage

粉丝 51
博文 146
码字总数 73307
作品 1
闵行
QA/测试工程师
私信 提问
netty入门笔记

尝试一下helloword demo -->官方HelloWord -->简书的入门级netty聊天demo 地址:https://www.jianshu.com/p/216881b0573d 2.netty入门级群聊demo,发现有3个问题 问题1:没有显示用户的名字 (现...

谜男amu
2018/01/23
4
0
Netty解决TCP的粘包和分包(二)

Netty解决TCP的粘包和分包(二) 使用LengthFieldBasedFrameDecoder解码器分包 先看一下这个类的的属性, private final ByteOrder byteOrder; //private final int maxFrameLength; //定义最...

秋风醉了
2015/07/31
0
0
基于 JavaFX 开发的聊天客户端 - OIM

一、简介 OIM是一套即时通讯的聊天系统,在这里献给大家,一方面希望能够帮助对即时通讯有兴趣研究的朋友,希望我们能够共同进步,另一个就是希望能够帮助到需要即时通讯系统的朋友或者企业,...

烙灵
2017/06/09
0
23
如何做一个自己的开源聊天项目?(仿微信)

篇幅较长,感谢阅读。 万事开头难 在我决定做开源是因为自身工作接触到大多数的项目都是基于开源大佬写的框架,自觉惭愧,工作以来一直忙于业务与功能实现,多多少少做过的几个项目也没能抽出...

Eddie_yang
2018/12/24
0
0
第十一章:WebSocket

本章介绍 WebSocket ChannelHandler,Decoder and Encoder 引导一个Netty基础程序 测试WebSocket 使用Netty附带的WebSocket,我们不需要关注协议内部实现,只需要使用Netty提供的一些简单的方...

李矮矮
2016/09/27
82
0

没有更多内容

加载失败,请刷新页面

加载更多

Tomcat的管理功能

Tomcat的管理功能 host-manager(管理虚拟主机) 这个功能是用来管理虚拟主机的,可以通过这个WEB界面,来停止、启动以及增加虚拟主机。首先要配置用户角色: 浏览器输入host-manager地址 # ...

wzb88
47分钟前
0
0
Java引用传递和JVM堆栈的关系说明

通过代码说明 Java 引用传递在堆栈上的关系。 可以从JVM的内存空间存放上说明,值传递 和引用传递。 堆(线程共享):对象、对象的全局变量、数组 栈(线程私有):声明为局部变量的 基本数据...

冷基
51分钟前
2
0
直接插入排序

直接插入排序的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。直接插入排序的时间复杂度为O(n^2),但性能比冒泡排序和简单选择排序的性能要好一点...

niithub
52分钟前
2
0
data.world、远观数据

产品思路: 1、共享数据集。 2、数据结构化。 3、数据展示。 https://data.world

colin_86
今天
3
0
Akka实战:HTTP大文件断点上传、下载,秒传

访问:https://github.com/yangbajing/scala-applications/tree/master/file-upload 获取本文所述完整源码,包括Akka HTTP后端和HTML5实现的前端。 在很多应用里面都会有类似大文件上传的需求...

羊八井
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部