• 技术文章 >Java >java教程

    java webservice上传下载文件代码分享

    高洛峰高洛峰2017-01-24 09:29:42原创667
    本文实例为大家分享了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,输入对应方法的参数即可。

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持PHP中文网。

    更多java webservice上传下载文件代码分享相关文章请关注PHP中文网!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:java 上传 下载
    上一篇:XFire构建web service客户端的五种方式 下一篇:Java程序员,最常用的20%技术有哪些?
    PHP编程就业班

    相关文章推荐

    • 实例详解Java反序列化之反射机制• 五种方法!Java创建多线程总结• Java基础之类和对象、单例模式、继承• JAVA-5NIO之Selector• java基础之Object类

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网