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

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

文件下载,带转码->pdf->swf的更多相关文章

  1. Plupload上传实例《模仿微云上传实例》,带源码

    Plupload上传实例<模仿微云上传实例>,带源码,作者:鱼塘总裁 如有疑问,加群交流:646104701 一.实例截图 1.上传过程 2.上传成功 3.上传失败 4.最小化 二.所需文 ...

  2. 大话设计模式(带目录完整版).pdf等

    点击进入百度网盘 大话设计模式(带目录完整版).pdf等 保存至网盘下载二维码举报 赞(0)| 评论 | 分享至 分享时间:2014-04-01 11:02 | 467次浏览 130次下载 81次保存 ...

  3. PDF解决方案(3)--PDF转SWF

    相关专题链接 PDF解决方案(1)--文件上传 PDF解决方案(2)--文件转PDF PDF解决方案(3)--PDF转SWF PDF解决方案(4)--在线浏览 前言:上一篇中介绍了上传的文件转PDF, ...

  4. swftools 将pdf转换swf常见问题说明

    swftools将PDF转成swfSWFTools提供了一系列将各种文件转成swf的工具: font2swf.exe gif2swf.exe jpeg2swf.exe pdf2swf.exe png2 ...

  5. Orchard CMS中如何打包不带源码的模块

    在Orchard CMS的官网已经提供了文档说明如何打包,但是如果使用它的打包方式,打好的nuget包是带源代码的.如果是为开源系统写模块,不需要关注源代码是否可见.但是如果是用Orchard CMS ...

  6. 转】MyEclipse使用总结——使用MyEclipse打包带源码的jar包

    原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4136303.html 感谢! 平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不 ...

  7. MyEclipse使用总结——使用MyEclipse打包带源码的jar包

    平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不到jar包里面的类的源码了,所以也就无法调试,要想调试,那么就只能通过关联源代码的形式,这样或多或少也有一些不方便,今 ...

  8. c# winform 中的 工具栏自动隐藏 splitter用法 带源码

    c# winform 中的 工具栏自动隐藏 splitter用法 带源码 代码下载地址 http://download.csdn.net/detail/simadi/7649313

  9. 【百度地图API】多家地图API内存消耗对比测验(带源码)

    原文:[百度地图API]多家地图API内存消耗对比测验(带源码) 任务描述: 啊,美妙的春节结束了.酸奶小妹和妈妈的山西平遥之旅也宣告成功!距离平遥古城7km,有一个同样身为“世界文化遗产”的寺庙,叫 ...

  10. 10个带源码的充满活力的Web设计教程

    10个带源码的充满活力的Web设计教程 2013-08-02 16:47 佚名 OSCHINA编译 我要评论(0) 字号:T | T Web设计师必须了解各种各样的Web设计风格,这才能让他或者她在设 ...

随机推荐

  1. Remoting 的“传递的引用”理解

    WCf是集大成者,具有其他微软的很多技术,其中分布式上很多借助于Remoting,所以研究一下Remoting有助于理解WCF 提到Remoting就不得不涉及到MarshalByRefObject这 ...

  2. (转)SQL流程控制语句学习(一):变量及控制语句种类

    1.局部变量 用户自己定义的,称局部变量,以@标识. 作用范围:定义局部变量的批处理.存储过程.触发器和语句块 局部变量的定义: declare @局部变量名 数据类型 注意:变量的类型不能是text ...

  3. 经典shell面试题整理

    一.取出/etc/passwd文件中shell出现的次数 问题:下面是一个/etc/passwd文件的部分内容.题目要求取出shell并统计次数,shell是指后面的/bin/bash,/sbin/n ...

  4. CADisplayLink的简单使用

    CADisplayLink类似NSTimer是一个定时器,只不过是一秒会调用60次指定的方法 使用方法: #import "ViewController.h" @interface ...

  5. CIPAddressCtrl控件

    CIPAddressCtrl m_ipCtrl; 1.获取控件IP值 int GetAddress(byte& byteFirst, byte& byteTwo, byte& ...

  6. 直接拨号、将电话号码传入拨号程序、调用拨号程序、调用系统浏览器浏览网页、调用系统程序查看联系人、显示系统设置界面和显示Wi-Fi设置界面代码

    直接拨号.将电话号码传入拨号程序.调用拨号程序.调用系统浏览器浏览网页.调用系统程序查看联系人.显示系统设置界面和显示Wi-Fi设置界面代码 拨打号码的代码如下: Intent callIntent= ...

  7. Python3 如何优雅地使用正则表达式(详解五)

    非捕获组命名组 精心设计的正则表达式可能会划分很多组,这些组不仅可以匹配相关的子串,还能够对正则表达式本身进行分组和结构化.在复杂的正则表达式中,由于有太多的组,因此通过组的序号来跟踪和使用会变得困难 ...

  8. 创建Windows服务简单流程

    1.首先打开VS2010(或者其他版本),创建Windows服务项目 2.创建完成后切换到代码视图,代码中默认有OnStart和OnStop方法执行服务开启和服务停止执行的操作,下面代码是详细解释: ...

  9. notes: the architecture of GDB

    1. gdb structure at the largest scale,GDB can be said to have two sides to it:1. The "symbol si ...

  10. ALTIUM DESIGNER怎么定义差分对布线

    方法一:第一步是在原理图中声明,这样做的目的是为了让差分对布线器清楚哪两个网络是属于同一组差分对,设计编译器将查找格式为NETNAME_N和NETNAME_P(即以_N和_P为后缀)的两个同名网络.这 ...