文件下载,带转码->pdf->swf

文件下载,带转码->pdf->swf

大家好,又见面了,我是全栈君。

private String upload = “保存的路径”;

//文件下载

public String download() {


//初始化


this.initContext();


String apath = request.getSession().getServletContext().getRealPath(upload);





File af = new File(apath);


// 假设没有这个目录。就创建个目录


if (!af.exists()) {


af.mkdirs();


}


String filenewaddress = request.getSession().getServletContext().getRealPath(upload);

    


System.out.println(“開始下载,请稍后……”);


URL urlfile = null;


HttpURLConnection httpUrl = null;


BufferedInputStream bis = null;


BufferedOutputStream bos = null;


try {





// 把下载地址赋给urlfile 


urlfile = new URL(fileoldaddress);


// 打开下载 URL 引用的资源的通信链接(假设尚未建立这种连接)


httpUrl = (HttpURLConnection) urlfile.openConnection();


// 建立与指定socket的连接


httpUrl.connect();


// 提供一个默认的文件名称


String context = httpUrl.getHeaderField(“Content-Disposition”);


// 推断context是否为空


if (context == null) {


// 取地址最后的/后面的字符当做名字


filename1 = fileoldaddress.substring(fileoldaddress


.lastIndexOf(“/”) + 1, fileoldaddress.length());


filenewaddress = filenewaddress + “\\” + filename1;


} else {


filename1 = context.substring(context.lastIndexOf(“=”) + 1,


context.length());


filenewaddress = filenewaddress + “\\” + filename1;


}


// 把本地保存地址赋给f


File f = new File(filenewaddress);


bis = new BufferedInputStream(httpUrl.getInputStream());


bos = new BufferedOutputStream(new FileOutputStream(f));


int len = 2048;


byte[] b = new byte[len];


while ((len = bis.read(b)) != -1) {


bos.write(b, 0, len);


}


bos.flush();


bis.close();


httpUrl.disconnect();


System.out.println(“下载完毕。”);


} catch (Exception e) {


System.out.println(“无效下载地址,错误信息:” + e.getMessage());


this.msg = “下载失败!”;


this.success = false;


} finally {


try {


if (bis != null)


bis.close();


if (bos != null)


bos.close();


} catch (IOException e) {


System.out.println(“系统错误,错误信息:” + e.getMessage());


System.out.println(“请联系管理员!”);


}


}


// 下载到本地结束

// 取绝对路径+名


String filepath = apath + “\\” + filename1;


System.out.println(filepath);


// 转格式


DocConverter d = new DocConverter(filepath);


d.conver();


// 转格式结束


return “success”;

}

转码须要用到两个软件!

    Apache_OpenOffice_incubating_3.4.1_Win_x86_install_zh-CN

                                                  swftools

必须先启动这两个软件,才干转码

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115691.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • LeakCanary 中文使用说明

    LeakCanary 中文使用说明

  • 前端面试:浅拷贝和深拷贝的区别是什么_java中的浅拷贝和深拷贝

    前端面试:浅拷贝和深拷贝的区别是什么_java中的浅拷贝和深拷贝浅拷贝(shallowcopy):只复制指向某个对象的指针,而不复制对象本身,新旧对象共享一块内存;  深拷贝(deepcopy):复制并创建一个一摸一样的对象,不共享内存,修改新对象,旧对象保持不变。…

  • 15种手机游戏引擎和开发工具介绍

    15种手机游戏引擎和开发工具介绍工欲善其事,必先利其器。对移动游戏开发者来说,高效实用的开发工具必不可少。近日,英国著名产业杂志《Develop》刊出了一篇文章,作者艾伦·李在文中推荐了15种移动游戏开发工具,从游戏引擎,到音效制作、推广等工具都有涉及。以下为原文主要内容编译。引擎和移动开发工具包Marmalade简介:Marmalade被很多人认为是跨平台制作C++游戏的最佳平台。通过MarmaladeSDK,开发者可以在单一的Marmalade项目文件夹中打开Xcode或VisualStudio,将

  • navivat 15在线激活码【中文破解版】

    (navivat 15在线激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • 堆排序算法——C/C++

    堆排序算法——C/C++堆排序1、算法思想堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。2、实现原理要实现从小到大的排序,就要建立大顶堆,即父节点比子节点都要大。2.1、初始化数组,创建大顶堆。大顶堆的创建从下往上比较,不能直接用无序数组从根节点比较,否则有的不符合大顶堆的定义。…

  • django模型数据类型_盒子模型的基本属性

    django模型数据类型_盒子模型的基本属性模型中常用字段字段说明AutoField一般不需要使用这个类型,自增长类型,数据表的字段类型为整数,长度为11位BigAutoField自增长类型,数据表的字段类型为bigint,长度为2

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号