这里有新鲜出炉的Java函数式编程,程序狗速度看过来!
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。
这篇文章主要为大家详细介绍了java webservice上传下载文件代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
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,输入对应方法的参数即可。
来源: http://www.phperz.com/article/17/1113/360147.html