springboot接收别人上传的本地视频实例代码
作者:qq_33931552 发布时间:2023-03-22 01:55:39
标签:spring,boot,本地视频,上传
package com.videobackend.controller;
import java.io.File;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.springframework.web.multipart.MultipartFile;
import com.ty.model.AdminTbl;
import com.ty.model.RolePermissionTbl;
import com.ty.service.PermissionService;
import com.utils.Constants;
import com.utils.ParamterNullCheck;
import com.utils.ToInterface;
import com.videobackend.model.Video;
import com.videobackend.model.VideoRecommend;
@Controller
@RequestMapping(value = "/videoInfo")
public class VideoController {
/**
* 调测日志记录器。
*/
private static final Logger DEBUGGER = Logger.getLogger(VideoController.class);
@Autowired
private PermissionService permissionService;
private static String FILE_ADDRESS;
@Value("${file_address}")
public void setfILE_ADDRESS(String fILE_ADDRESS) {
FILE_ADDRESS = fILE_ADDRESS;
}
/**
* 上传本地视频
*
* @param request
* @param response
* @param model
* @param video
* @param admintabl
* @return
* @throws IOException
* @throws IllegalStateException
*/
@RequestMapping(value = "/save_local_video", method = RequestMethod.POST)
@ResponseBody
public String save_local_video(@RequestParam("file") MultipartFile file, Video video, AdminTbl admintabl)
throws IllegalStateException, IOException {
JSONObject result = new JSONObject();
String[] args = { "admin_id", "cover", "createdTime", "title"};
JSONObject nullcheck = ParamterNullCheck.getInstance().checkNull(video, args);
if (!file.isEmpty()) {
//存放地址
String path = FILE_ADDRESS;
//如果父文件夹不存在 则创建文件夹 文件夹为path,视频名字file.getOriginalFilename()
File filepath = new File(path, file.getOriginalFilename());
if (!filepath.getParentFile().exists()) {
filepath.getParentFile().mkdirs();
}
File fi = new File(path + File.separator + file.getOriginalFilename());
//下载到本地
file.transferTo(fi);
//获取绝对路径
String localAddress = fi.getAbsolutePath();
DEBUGGER.info("存入本地文件地址:" + localAddress);
video.setLocalAddress(localAddress);
//获取后缀名
String suffix= localAddress.substring(localAddress.lastIndexOf("."), localAddress.length());
DEBUGGER.info("后缀名:" + suffix);
video.setSuffix(suffix);
if (nullcheck == null) {
// 查询该 用户是否有该权限
admintabl.setUrl("/videoInfo/save_local_video");
RolePermissionTbl rpt = permissionService.get_permission(admintabl);
if (rpt != null) {
JSONObject param = null;
param = (JSONObject) JSON.toJSON(video);
DEBUGGER.info(param.toJSONString());
// 调取接口
StringBuffer saveLocalVideo = ToInterface.interfaceUtil("/video/saveLocalVideo", param.toJSONString(),
"POST");
result.put("saveLocalVideo", saveLocalVideo);
} else {
result.put("msg", Constants.NO_AUTH);
}
} else {
result = nullcheck;
}
} else {
DEBUGGER.info("缺少的参数key=======" + file.getName());
result.put("msg", Constants.SYS_PARAMTER_MISSING);
}
return result.toJSONString();
}
}
yml配置
#设置文件大小 srpingboot不设置会报错
spring.servlet.multipart.max-file-size : 10mb
spring.servlet.multipart.max-request-size : 100mb
#文件存放地址
file_address: D:\\image
pom配置
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>
总结
以上所述是小编给大家介绍的springboot接收别人上传的本地视频网站的支持!
来源:https://blog.csdn.net/qq_33931552/article/details/81299235


猜你喜欢
- 本文实例为大家分享了java数字转汉字工具类的具体代码,供大家参考,具体内容如下/** * Created by 33303 on 2017
- 意图:想将项目用到的两个dll库文件(CryptEnDe.dll和ICSharpCode.SharpZipLib.dll)一同编译进exe中
- Kotlin使用SQLite首先确定我们的目标,SQLite只是一种工具,我们需要掌握就是增删改查就可以,我们真正需要动脑的还是项目中的业务
- Jackson反序列化遇到的问题最近在项目中需要使用Jackson把前台转来的字符转为对象,转换过程中发生了错误,报错如下com.faste
- 原来的测试类的注解:@RunWith(SpringRunner.class)@SpringBootTest一直没法自动注入,后来在@Spri
- Mybatis and和循环or混用这次项目用到一个and和or混用的场景 , 因为用到多个or(循环), 没想到好的办法最终转换成用 IN
- (一)单线程递归方式package com.taobao.test;import java.io.File;public class Tot
- 一.什么是泛型当我们不确定数据类型时,我们可以暂时使用一个字母 T代替数据类型。例如写一个方法,但是我们不知道它是传递的是什么数据类型,我们
- 一.内部类的介绍 内部类: 一个类定义在 另一个类 的 内部。 &
- 前言Basic编码是标准的BASE64编码,用于处理常规的需求:输出的内容不添加换行符,而且输出的内容由字母加数字组成。最近做了个Web模版
- Spring 表达式语言简称为 SpEL,一种类似 Ognl 的对象图导航语言(对于 ognl 不熟悉的同学可以参考一下: Ognl 系列博
- Grpc是googe开发的,是一款语言中立、平台中立、开源的远程过程调用(RPC)系统。新公司的项目服务之间的调用使用的Grpc来实现服务间
- Spring是一个非常流行的Java Web开发框架,它提供了强大的依赖注入、面向切面编程、声明式事务管理等功能,为开发者提供了高效、快速地
- 这一篇博客我们来使用 UGUI 实现图片的拖拽功能。说到拖拽,那必然离不开坐标,UGUI 的坐标有点不一样,它有两种坐标,一种是屏幕坐标,还
- 本文实例讲述了C#之Expression表达式树,分享给大家供大家参考。具体实现方法如下:表达式树表示树状数据结构的代码,树状结构中的每个节
- 一、Struts2文件上传 Struts2的文件上传实现非常简单,只需要简单几步就可完成;注意:(1)文件上传的struts2标签
- 写在前面,首先,我用的java转json序列化的工具是java开源的jackson。今天在做后端接口的时候,发现获取的json对象中少了几个
- 在Android中,线程内部或者线程之间进行信息交互时经常会使用消息,这些基础的东西如果我们熟悉其内部的原理,将会使我们容易、更好地架构系统
- FeignClient发送post请求异常这个问题其实很基础。但是却难倒了我。记录一下在发送post请求的时候要指定消息格式正确的写法是这样
- 在我们对程序进行操作过程中,一般都需要有一个操作流程的记录显示。用C#进行编程时可以很容易实现这个功能。本经验提供案例仅供参考下面小编就来介