1、新建动态web工程youmeFileServer,新建包com,里面新建类FileProgress

package com;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.Random; import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/*
* web servcie 上传下载文件
*/
public class FileProgress
{
public String sayHello(String name)
{
return "Hello," + name+"\n"+getdir("2");
} /*
* 文件上传服务
*/
public String uploadFile(String fileName, String filetype, String file)//byte[] bytes)
{
FileOutputStream fos = null;
try
{
String filedir = getdir(filetype);
BASE64Decoder decoder= new BASE64Decoder();
byte[] bytes = decoder.decodeBuffer(file); if(filedir=="")
{
return "";
}
Integer rdm = new Random().nextInt(10000);
String savename = getDataTimeString(true) +rdm.toString()+fileName.substring(fileName.indexOf('.'));
fos = new FileOutputStream(filedir+savename);
// 将字节数组bytes中的数据,写入文件输出流fos中
fos.write(bytes);
fos.flush();
return filedir +savename;
}
catch (Exception e)
{
e.printStackTrace();
return "";
}
finally
{
try
{
fos.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
} /**
* @param filepath
*/
private String getdir(String filetype)
{
String path = "F:\\youme\\{0}\\" + getDataString()
+ "\\";
switch (filetype)
{
case "2":
path = path.replace("{0}", "image");
break;
case "3":
path = path.replace("{0}", "vedio");
break;
default:
return "";
}
try
{
java.io.File file = new java.io.File(path);
if(!file.exists())
{
if(!file.mkdirs())
{
return "";
}
}
return path;
}
catch(Exception ex)
{
return "";
}
finally
{ }
} /*
* 文件下载服务
*/
public String downloadFile(String filepath)
{
// filepath = "F:\\youme\\vedio\\2013-09-03\\201309031700143294.amr";
FileInputStream in = null;
byte bytes[] = null;
String file = null;
try
{
in = new FileInputStream(filepath);
bytes = new byte[in.available()]; // 从输入流in中,将 bytes.length 个字节的数据读入字节数组bytes中
in.read(bytes);
BASE64Encoder encoder = new BASE64Encoder();
file = encoder.encode(bytes);
}
catch (Exception e)
{
e.printStackTrace();
return "";
}
finally
{
try
{
in.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
// return bytes;
return file;
}
/*
* 获取当前时间
*/
private static String getDataTimeString(Boolean isfilename)
{
try
{
SimpleDateFormat formatter = null;
if(!isfilename)
{
formatter= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
}
else
{
formatter= new SimpleDateFormat("yyyyMMddHHmmss");
}
Date curDate = new Date(System.currentTimeMillis());//获取当前时间
return formatter.format(curDate);
}
catch(Exception ex)
{
System.out.println(ex.getMessage());
return "";
}
} /*
* 获取当前日期
*/
private static String getDataString()
{
try
{
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date curDate = new Date(System.currentTimeMillis());//获取当前时间
return formatter.format(curDate);
}
catch(Exception ex)
{
System.out.println(ex.getMessage());
return "";
}
} }

2、发布测试webservice(eclipse Java EE IDE)

右键刚才建立的类,现在webservice-->create webservice,

webservice type 选择bottom upjava bean web service,service implementation 选择目标类,

下一步选择要发布公开的方法接口,直到完成,tomcat已启动,

右键刚生成的wsdl文件夹里面的wsdl文件,选择测试webservice,输入对应方法的参数即可。

java web service 上传下载文件的更多相关文章

  1. 【转】Java IOUtils方式上传下载文件 on HDFS

    [From]https://www.cnblogs.com/areyouready/p/9795442.html package com.css.hdfs04; import java.io.File ...

  2. java web图片上传和文件上传

    图片上传和文件上传本质上是一样的,图片本身也是文件.文件上传就是将图片上传到服务器,方式虽然有很多,但底层的实现都是文件的读写操作. 注意事项 1.form表单一定要写属性enctype=" ...

  3. Web API 上传下载文件

    1.引用了一个第三方组件 ICSharpCode.SharpZipLib.Zip; 2.具体代码 实体类,可以用hashtable 替代 ,感觉hashtable 比较灵活 public class ...

  4. UWP 使用Windows Community Toolkit 的OneDrive service上传下载文件

    上一年年底写过两篇文章 UWP 使用OneDrive云存储2.x api(一)[全网首发] UWP 使用OneDrive云存储2.x api(二)[全网首发] 没想到半年之后,VS编译提示方法已经过时 ...

  5. JAVA 实现FTP上传下载(sun.net.ftp.FtpClient)

    package com.why.ftp; import java.io.DataInputStream; import java.io.File; import java.io.FileInputSt ...

  6. 【WCF】利用WCF实现上传下载文件服务

    引言     前段时间,用WCF做了一个小项目,其中涉及到文件的上传下载.出于复习巩固的目的,今天简单梳理了一下,整理出来,下面展示如何一步步实现一个上传下载的WCF服务. 服务端 1.首先新建一个名 ...

  7. web service上传参数代码实例

    web service上传参数代码实例 这次做的项目用到webservice比较多,最开始在网上看的参考dome,发现都不行,后来发现安卓4.0以后有很大的不同,在做传参时,有些东西需要注意: 第一, ...

  8. Delphi调用JAVA的WebService上传XML文件(XE10.2+WIN764)

    相关资料:1.http://blog.csdn.net/luojianfeng/article/details/512198902.http://blog.csdn.net/avsuper/artic ...

  9. C#实现http协议支持上传下载文件的GET、POST请求

    C#实现http协议支持上传下载文件的GET.POST请求using System; using System.Collections.Generic; using System.Text; usin ...

随机推荐

  1. 0608pm单例模式and面向对象的六大原则

    //把类控制住,不让外界造她的对象class DA{ public $name; static private $dx;//存放对象的变量 //将构造变为私有,外界没法造对象 private func ...

  2. hive与hbase

    作者:有点文链接:https://www.zhihu.com/question/21677041/answer/185664626来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  3. PHP用星号隐藏部份用户名、身份证、IP、手机号、邮箱等实例

      一.仿淘宝评论购买记录隐藏部分用户名,以下代码亲测可用. function cut_str($string, $sublen, $start = 0, $code = 'UTF-8') { if( ...

  4. 015_[小插曲]看黄老师《炼数成金Hadoop应用开发实战案例》笔记

    1.大数据金字塔结构 Data Source-->Data Warehouses/Data Marts-->data exploration-->Data Mining-->D ...

  5. Linux权限管理 ACL权限

    ACL权限简介 在普通权限中,用户对文件只有三种身份ugo,分别为属主(u).属组(g)和其他人(o):每种用户身份拥有读(read).写(write)和执行(execute)三种权限.但是在实际工作 ...

  6. Cocos2d-x项目移植到WP8系列之二:开篇

    原文链接: http://www.cnblogs.com/zouzf/p/3970130.html 开发环境一笔带过吧,主板和CPU要支持虚拟化技术,要开启才行,装个64位win8.1系统,win8不 ...

  7. 大话设计模式之PHP篇 - 适配器模式

    定义将一个类的接口转换成客户希望的另外一个接口,使用原本不兼容的而不能在一起工作的那些类可以在一起工作. 角色Target适配目标,该角色定义把其他类转换为何种接口,也就是我们的期望接口.Adapte ...

  8. hql学习记录

    ` String hql = "from SysUser o join o.set where owner_id = :newName"; Query query = this.g ...

  9. centos7 下安装eclipse

    1 在下面路径下载 eclipse-jee-neon-2-linux-gtk-x86_64.tar.gzhttp://eclipse.stu.edu.tw/technology/epp/downloa ...

  10. 解决MySQL因不能创建 PID 导致无法启动的方法

    问题描述 MySQL 启动报错信息如下: ? 1 2 Starting mysqld (via systemctl):  Job for mysqld.service failed because t ...