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. JavaScript:学习笔记(5)——箭头函数=>以及实践

    JavaScript:学习笔记(5)——箭头函数=>以及实践 ES6标准新增了一种新的函数:Arrow Function(箭头函数).本文参考的链接如下: MDN箭头函数:https://dev ...

  2. Vue:实践学习笔记(3)——组件使用

    Vue:实践学习笔记(3)——组件使用 全局注册 1.注册组件 Vue.component('my-component',{ //选项 }) 说明:my-component就是注册的组件自定义的标签名 ...

  3. Bootstrap主题库

    主题 https://startbootstrap.com/template-categories/all/ https://bootstrapmade.com/ http://www.jqueryf ...

  4. WebSocket 初体验

    其实老早就觊觎 Socket 这碗美食了,在 WebSocket 发出后更是心潮澎湃... 奈何这需要后端同志的帮助,使得至今才得以品尝.(当然本文也只涉及前端部分) 以前想监听其他设备变化,大屏幕交 ...

  5. python对象类型----数字&字符串

    一数据类型:      float: 1.3e-3  1.3*10的负三次方 print (1.3e-3)    bin()  #转换为二进进制    oct() #转换为8进制    hex()#转 ...

  6. linux创建指定大小的文件

    一.生成文件大小和实际占空间大小一样的文件 dd if=/dev/zero of=50M.file bs=1M count=50 dd if=/dev/zero of=20G.file bs=1G c ...

  7. redis 第二篇 系统命令简介 上

    一.系统级命令(不归属任何一个数据结构) 从keys命令说起 1.  可以模式匹配  也就是可以用正则表达式的方式来匹配 格式为KEYS pattern glob风格通配符规则 ?   匹配一个字符 ...

  8. centOS最小化安装后网络连接问题

    编辑配置文件 vi /etc/sysconfig/network-script/ifcfg-eth0   修改此行重启后即可 ONBOOT="yes"           #修改为 ...

  9. oracle 序列改值

    1.oracle 序列改值 执行:Alter Sequence SQ_RM_FRAME Increment By 100; 执行:Select SQ_RM_FRAME.NextVal From Dua ...

  10. KestrelHttpServer

    source code of Kestrel of documentation https://github.com/aspnet/KestrelHttpServer https://github.c ...