java web service 上传下载文件
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 上传下载文件的更多相关文章
- 【转】Java IOUtils方式上传下载文件 on HDFS
[From]https://www.cnblogs.com/areyouready/p/9795442.html package com.css.hdfs04; import java.io.File ...
- java web图片上传和文件上传
图片上传和文件上传本质上是一样的,图片本身也是文件.文件上传就是将图片上传到服务器,方式虽然有很多,但底层的实现都是文件的读写操作. 注意事项 1.form表单一定要写属性enctype=" ...
- Web API 上传下载文件
1.引用了一个第三方组件 ICSharpCode.SharpZipLib.Zip; 2.具体代码 实体类,可以用hashtable 替代 ,感觉hashtable 比较灵活 public class ...
- UWP 使用Windows Community Toolkit 的OneDrive service上传下载文件
上一年年底写过两篇文章 UWP 使用OneDrive云存储2.x api(一)[全网首发] UWP 使用OneDrive云存储2.x api(二)[全网首发] 没想到半年之后,VS编译提示方法已经过时 ...
- JAVA 实现FTP上传下载(sun.net.ftp.FtpClient)
package com.why.ftp; import java.io.DataInputStream; import java.io.File; import java.io.FileInputSt ...
- 【WCF】利用WCF实现上传下载文件服务
引言 前段时间,用WCF做了一个小项目,其中涉及到文件的上传下载.出于复习巩固的目的,今天简单梳理了一下,整理出来,下面展示如何一步步实现一个上传下载的WCF服务. 服务端 1.首先新建一个名 ...
- web service上传参数代码实例
web service上传参数代码实例 这次做的项目用到webservice比较多,最开始在网上看的参考dome,发现都不行,后来发现安卓4.0以后有很大的不同,在做传参时,有些东西需要注意: 第一, ...
- Delphi调用JAVA的WebService上传XML文件(XE10.2+WIN764)
相关资料:1.http://blog.csdn.net/luojianfeng/article/details/512198902.http://blog.csdn.net/avsuper/artic ...
- C#实现http协议支持上传下载文件的GET、POST请求
C#实现http协议支持上传下载文件的GET.POST请求using System; using System.Collections.Generic; using System.Text; usin ...
随机推荐
- JavaScript:学习笔记(5)——箭头函数=>以及实践
JavaScript:学习笔记(5)——箭头函数=>以及实践 ES6标准新增了一种新的函数:Arrow Function(箭头函数).本文参考的链接如下: MDN箭头函数:https://dev ...
- Vue:实践学习笔记(3)——组件使用
Vue:实践学习笔记(3)——组件使用 全局注册 1.注册组件 Vue.component('my-component',{ //选项 }) 说明:my-component就是注册的组件自定义的标签名 ...
- Bootstrap主题库
主题 https://startbootstrap.com/template-categories/all/ https://bootstrapmade.com/ http://www.jqueryf ...
- WebSocket 初体验
其实老早就觊觎 Socket 这碗美食了,在 WebSocket 发出后更是心潮澎湃... 奈何这需要后端同志的帮助,使得至今才得以品尝.(当然本文也只涉及前端部分) 以前想监听其他设备变化,大屏幕交 ...
- python对象类型----数字&字符串
一数据类型: float: 1.3e-3 1.3*10的负三次方 print (1.3e-3) bin() #转换为二进进制 oct() #转换为8进制 hex()#转 ...
- linux创建指定大小的文件
一.生成文件大小和实际占空间大小一样的文件 dd if=/dev/zero of=50M.file bs=1M count=50 dd if=/dev/zero of=20G.file bs=1G c ...
- redis 第二篇 系统命令简介 上
一.系统级命令(不归属任何一个数据结构) 从keys命令说起 1. 可以模式匹配 也就是可以用正则表达式的方式来匹配 格式为KEYS pattern glob风格通配符规则 ? 匹配一个字符 ...
- centOS最小化安装后网络连接问题
编辑配置文件 vi /etc/sysconfig/network-script/ifcfg-eth0 修改此行重启后即可 ONBOOT="yes" #修改为 ...
- oracle 序列改值
1.oracle 序列改值 执行:Alter Sequence SQ_RM_FRAME Increment By 100; 执行:Select SQ_RM_FRAME.NextVal From Dua ...
- KestrelHttpServer
source code of Kestrel of documentation https://github.com/aspnet/KestrelHttpServer https://github.c ...