0

0

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

高洛峰

高洛峰

发布时间:2017-01-24 09:29:42

|

1727人浏览过

|

来源于php中文网

原创

本文实例为大家分享了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中文网。

企业后台管理系统JaManage2.0 多语言版
企业后台管理系统JaManage2.0 多语言版

功能介绍: 一.系统管理:管理员管理,可以新增管理员及修改管理员密码;数据库备份,为保证您的数据安全本系统采用了数据库备份功能;上传文件管理,管理你增加产品时上传的图片及其他文件 二.企业信息:可设置修改企业的各类信息及介绍 三.产品管理:产品类别新增修改管理,产品添加修改以及产品的审核 四.下载中心:可分类增加各种文件,如驱动和技术文档等文件的下载 五.订单管理:查看订单的详细信息

下载

立即学习Java免费学习笔记(深入)”;

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

相关文章

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

22

2026.01.23

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

24

2026.01.23

yy漫画官方登录入口地址合集
yy漫画官方登录入口地址合集

本专题整合了yy漫画入口相关合集,阅读专题下面的文章了解更多详细内容。

99

2026.01.23

漫蛙最新入口地址汇总2026
漫蛙最新入口地址汇总2026

本专题整合了漫蛙最新入口地址大全,阅读专题下面的文章了解更多详细内容。

132

2026.01.23

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

15

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

65

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

61

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

63

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP基础入门课程
PHP基础入门课程

共33课时 | 2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号