spring boot 上传视频demo

@springboot 上传视频

1.controller 层代码

@RequestMapping(value = "uploadVidoe", method = RequestMethod.POST)
    @ResponseBody
    public Map<String,String> savaVideo(@RequestParam("file") MultipartFile file)
            throws IllegalStateException {
        Map<String,String> resultMap = new HashMap<>();
        try{
            //获取文件后缀
            String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1)
                    .toLowerCase();
            // 重构文件名称
            String pikId = UUID.randomUUID().toString().replaceAll("-", "");
            String newVidoeName = pikId + "." + fileExt;
            //保存视频
            File fileSave = new File(savePaths, newVidoeName);
            file.transferTo(fileSave);
            resultMap.put("resCode","1");
            resultMap.put("webShowPath",webPaths + newVidoeName);

            return  resultMap;

        }catch (Exception e){
            e.printStackTrace();
            resultMap.put("resCode","0");
            return  resultMap ;

        }
    }

前端代码


<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <script th:src="@{/jquery-3.3.1.js}">
    </script>
</head>

<body>
<span><input style="width: 75%; height: 100%;display: block" type="file" name="myfile" onchange="uploadVidoe(this)"/>
</span>
</body>

<script>

    function uploadVidoe(vidoe) {
        var fileObj = vidoe.files[0]; // 获取文件对象

        if (fileObj != undefined) {

            if (fileObj.name) {
                console.log(fileObj.name)
            } else {
                alert("请选择文件");
            }

            var size = fileObj.size;
            var type = fileObj.type;

            //校验格式
            if (type.indexOf('mp4') == -1) {
                alert("请上传MP4格式")
                return false;
            }
            //校验大小
            if (size / 1024 / 2014 > 10) {
                alert("请上传" + size + "之内的视频")
                return false;
            }

            var form = new FormData(); // FormData 对象
            form.append("file", fileObj);
            $.ajax({
                url: "uploadVidoe",
                contentType: false,//false 传输对象
                processData: false,
                type: "POST",
                data: form,
                success: function (ret) {
                    if(ret.resCode != undefined){
                        if(ret.resCode == '1'){
                            alert("上传成功")
                        }
                        else if(ret.resCode == '0'){
                            alert("上传失败")
                        }
                    }
                }
            })

        }
    }

</script>

</html>

页面
在这里插入图片描述

上传的视频
在这里插入图片描述
git https://github.com/13030509/test.git
记录一下,希望给路过的朋友一点帮助

好的,下面是一个简单的 Spring Boot 集成 WebSocket 的 Demo。 首先,你需要在 `pom.xml` 文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> </dependency> ``` 然后,在 Spring Boot 的启动类上添加 `@EnableWebSocket` 注解。 ```java @SpringBootApplication @EnableWebSocket public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 接下来,创建一个 Websocket 处理器(Handler)类,用来处理 WebSocket 消息的收发。 ```java @Component public class WebSocketHandler extends TextWebSocketHandler { private static final List<WebSocketSession> sessions = new CopyOnWriteArrayList<>(); @Override public void afterConnectionEstablished(WebSocketSession session) throws Exception { sessions.add(session); System.out.println("New session established: " + session.getId()); } @Override public void handleTextMessage(WebSocketSession session, TextMessage message) throws IOException { System.out.println("Received message: " + message.getPayload()); for (WebSocketSession webSocketSession : sessions) { if (webSocketSession.isOpen() && !session.getId().equals(webSocketSession.getId())) { webSocketSession.sendMessage(message); } } } @Override public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception { sessions.remove(session); System.out.println("Session closed: " + session.getId()); } } ``` 在上面的代码中,我们使用 `TextWebSocketHandler` 类来处理文本消息。当客户端连接上 WebSocket 服务器时,`afterConnectionEstablished` 方法会被调用;当客户端发送消息时,`handleTextMessage` 方法会被调用;当客户端断开连接时,`afterConnectionClosed` 方法会被调用。在 `afterConnectionEstablished` 方法中,我们将当前 WebSocket 会话添加到 `sessions` 集合中;在 `handleTextMessage` 方法中,我们将接收到的消息转发给其他客户端;在 `afterConnectionClosed` 方法中,我们将当前 WebSocket 会话从 `sessions` 集合中移除。 最后,我们需要定义一个 WebSocket 配置类,用来注册我们创建的 WebSocket 处理器。 ```java @Configuration @EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer { @Autowired private WebSocketHandler webSocketHandler; @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(webSocketHandler, "/websocket").setAllowedOrigins("*"); } } ``` 在上面的代码中,我们使用 `WebSocketConfigurer` 接口来配置 WebSocket。首先,我们注入了之前创建的 WebSocket 处理器 `WebSocketHandler`;然后,我们在 `registerWebSocketHandlers` 方法中,使用 `WebSocketHandlerRegistry` 注册了我们的 WebSocket 处理器,并指定了 WebSocket 的路径为 `/websocket`,允许跨域访问。 至此,一个简单的 Spring Boot 集成 WebSocket 的 Demo 就完成了。你可以在前端页面中使用 `WebSocket` 对象连接到 `/websocket` 路径,来实现 WebSocket 的消息收发。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值