又拍云:文件上传+下载+自定义下载路径(SSM+AJAX+JFileChooser)

2023-11-23 13:51

本文主要是介绍又拍云:文件上传+下载+自定义下载路径(SSM+AJAX+JFileChooser),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这一篇是前几篇功能的总结

http://blog.csdn.net/qq_36688143/article/details/79007120

http://blog.csdn.net/qq_36688143/article/details/79007067

http://blog.csdn.net/qq_36688143/article/details/78871406

http://blog.csdn.net/qq_36688143/article/details/78856695

http://blog.csdn.net/qq_36688143/article/details/78849448




又拍云:文件上传+下载+自定义下载路径(SSM+AJAX+JFileChooser)效果图如下

上传功能(旁边的小白按钮是用来选择路径和页面到Controller跳转的)





下载功能




①filePath.jsp --->②UpYunController -->③cloudVideo.jsp

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>选择上传的文件</title>
<script type="text/javascript"
src="static/js/common/jquery-1.12.4.min.js"></script>
</head>
<body>
<!-- 选择要上传的文件,通过id获得上传文件的路径 -->
<input type="file" id="importFile" />
<input type="button" οnclick="upload()" /><!-- 响应id="importFile"事件 -->
<script type="text/javascript">
function upload() {
//通过id获得上传文件的路径var localFilePath = document.getElementById("importFile").value;$.ajax({
url:"onUpYun",//UpYunController
data:{"localFilePath":localFilePath},  
type:"post",
success:function(msg){
if(msg.code==100){
//在这个页面显示
window.location.href="cloudVideo.jsp?";
}else{
alert("---10000---");
}
},
error:function(){
}
});
}
</script>
</body>




@Controller
public class UpYunController {
/**
* @Title: videoInsert
* @Description: 云上传
* @param filename 要上传的本地文件的路径
* @return         
* @throws 
* @author: 
* @date: 2018年1月10日
*/
@ResponseBody
@RequestMapping(value = "onUpYun", method = RequestMethod.POST)
public Msg videoInsert(String localFilePath) {
System.out.println("localFilePath:" + localFilePath);
// 初始化UpYun("空间名称", "操作员名称", "操作员密码")
UpYun upyun = new UpYun("cloud-video", "fxy", "20561yuan");// 采用数据流模式上传文件(节省内存),自动创建父级目录
boolean result = false;
// 这个File的路径要双斜杠编译
File file = new File(localFilePath);
try {
/*
* 上传文件时可进行文件的 MD5 校验, 若又拍云服务端收到的文件MD5值与用户设置的不一致,将返回 406 Not
* Acceptable 错误。
*/
upyun.setContentMD5(UpYun.md5(file));
} catch (IOException e1) {
System.out.println("异常1");
e1.printStackTrace();
}//split分开路径string,获得要上传的视频后缀,如111.mp4
String[]  strs=localFilePath.split("\\\\");
String videoAdd = strs[4];
System.out.println("上传的视频为:"+videoAdd);
try {
//暂时存到又拍云的存储路径为:直接放在根目录,如111.mp4
result = upyun.writeFile(videoAdd, file, true);
} catch (IOException e) {
System.out.println("异常2");
e.printStackTrace();
}
System.out.println("result:" + result);
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
HttpSession session = request.getSession();
//后期这些数据要存到数据库
// 将云播放的链接存储到session中
session.setAttribute("videoAdd", "http://cloud-video.test.upcdn.net/"+videoAdd);
// 把用户选择上传的视频,存在又拍云的路径存储到session中,如111.mp4
session.setAttribute("pathUpYun", videoAdd);
return Msg.success();
}/**
* @Title: upYunDownload 
* @Description: 文件云下载(todo:连接数据库之后,这个方法应该要传递一个参数:保存在又拍云中的文件路径)
* @return         
* @throws 
* @author:
* @date: 2018年1月10日
*/
@ResponseBody
@RequestMapping(value = "downloadVideo", method = RequestMethod.POST)
public Msg upYunDownload() {
//todo:连接数据库之后,这个方法应该要传递一个参数:保存在又拍云中的文件路径//获得session,以获取刚才存进来的值
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
HttpSession session = request.getSession();
//获得刚才在又拍云中的文件,如111.mp4
String pathUpYun = (String) session.getAttribute("pathUpYun");
System.out.println("pathUpYun:" +pathUpYun);//使用JFileChooser获取要存放在本地的路径JFileChooser chooser = new JFileChooser();
/*
* 根据JFileChooser对弹出的文件夹框选择 1、只选择目录JFileChooser.DIRECTORIES_ONLY
* 2、只选择文件JFileChooser.FILES_ONLY
* 3、目录或者文件都可以JFileChooser.FILES_AND_DIRECTORIES
*/
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);// 保存所选目录chooser.showSaveDialog(parent);
Component parent = null;
int returnVal = chooser.showSaveDialog(parent);
String selectLocalPath = null;
// 获得选中的文件对象JFileChooser.APPROVE_OPTION
// 如果保存的目录跟获得选中的文件对象一致,成功都是返回0
if (returnVal == JFileChooser.APPROVE_OPTION) {
// 获得路径
selectLocalPath = chooser.getSelectedFile().getPath();
System.out.println("你选择的本地目录是:" + selectLocalPath);
// 保存到本地的路径File file = new File(selectLocalPath+"\\"+pathUpYun); // 在又拍云中的路径,暂时都是存放在根目录,格式如111.mp4String remoteFilePath = "//"+pathUpYun;UpYunUtil upYunUtil = new UpYunUtil();boolean result =  upYunUtil.upYunPath().readFile(remoteFilePath, file);
System.out.println(result);
}
//关闭文件选择器
chooser.setVisible(false);
//关闭程序
//System.exit(0);
return Msg.success();
}}




<script type="text/javascript"
src="static/js/common/jquery-1.12.4.min.js"></script>
</head>
<body>
<!-- begin:调用wmp播放器 -->
<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95"
codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,1,5,217"
id="MediaPlayer" type=application/x-oleobject width="560" height="360"
standby="Loading Microsoft Windows Media Player components..."
VIEWASTEXT align="middle">
<param name="Filename" value=${videoAdd } valuetype="ref">
<param name="PlayCount" value="0">
<param name="AutoStart" value="1">
<param name="ClickToPlay" value="1">
<param name="EnableFullScreen Controls" value="1">
<param name="ShowAudio Controls" value="1">
<param name="EnableContext Menu" value="1">
<param name="ShowDisplay" value="0">
</object>
<!-- end:调用wmp播放器 --><input type="button" οnclick="upload()"/><script type="text/javascript">
function upload() {$.ajax({
url:"downloadVideo",
type:"post",
success:function(msg){
if(msg.code==100){
alert("666");
}else{
alert("---10000---");
}
},
error:function(){
}
});
}
</script>
</body>


这篇关于又拍云:文件上传+下载+自定义下载路径(SSM+AJAX+JFileChooser)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/qq_36688143/article/details/79028074
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/418395

相关文章

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

如何自定义一个log适配器starter

《如何自定义一个log适配器starter》:本文主要介绍如何自定义一个log适配器starter的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求Starter 项目目录结构pom.XML 配置LogInitializer实现MDCInterceptor

VSCode设置python SDK路径的实现步骤

《VSCode设置pythonSDK路径的实现步骤》本文主要介绍了VSCode设置pythonSDK路径的实现步骤,包括命令面板切换、settings.json配置、环境变量及虚拟环境处理,具有一定... 目录一、通过命令面板快速切换(推荐方法)二、通过 settings.json 配置(项目级/全局)三、

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

Druid连接池实现自定义数据库密码加解密功能

《Druid连接池实现自定义数据库密码加解密功能》在现代应用开发中,数据安全是至关重要的,本文将介绍如何在​​Druid​​连接池中实现自定义的数据库密码加解密功能,有需要的小伙伴可以参考一下... 目录1. 环境准备2. 密码加密算法的选择3. 自定义 ​​DruidDataSource​​ 的密码解密3

spring-gateway filters添加自定义过滤器实现流程分析(可插拔)

《spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔)》:本文主要介绍spring-gatewayfilters添加自定义过滤器实现流程分析(可插拔),本文通过实例图... 目录需求背景需求拆解设计流程及作用域逻辑处理代码逻辑需求背景公司要求,通过公司网络代理访问的请求需要做请

如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)

《如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)》:本文主要介绍如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)问题,具有很好的参考价值,希望对大家有所帮助,如有... 目录先在你打算存放的地方建四个文件夹更改这四个路径就可以修改默认虚拟内存分页js文件的位置接下来从高级-

GitLab文件的上传与下载方式

《GitLab文件的上传与下载方式》:本文主要介绍GitLab文件的上传与下载方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录GitLab 项目拉取到本地GitLab 项目上传方法方法 1:本地项目未初始化Git方法 2:本地项目已初始化GitGitLab 上

Nginx 413修改上传文件大小限制的方法详解

《Nginx413修改上传文件大小限制的方法详解》在使用Nginx作为Web服务器时,有时会遇到客户端尝试上传大文件时返回​​413RequestEntityTooLarge​​... 目录1. 理解 ​​413 Request Entity Too Large​​ 错误2. 修改 Nginx 配置2.1