热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

javawebservice上传下载文件代码分享

这篇文章主要为大家详细介绍了javawebservice上传下载文件代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 作为一名新手,您可能会在初次尝试使用Eclipse进行Struts开发时遇到一些挑战。本文将为您提供详细的指导和解决方案,帮助您克服常见的配置和操作难题。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文详细介绍了如何准备和安装 Eclipse 开发环境及其相关插件,包括 JDK、Tomcat、Struts 等组件的安装步骤及配置方法。 ... [详细]
  • 自己用过的一些比较有用的css3新属性【HTML】
    web前端|html教程自己用过的一些比较用的css3新属性web前端-html教程css3刚推出不久,虽然大多数的css3属性在很多流行的浏览器中不支持,但我个人觉得还是要尽量开 ... [详细]
  • 本文探讨了在Windows Server 2008环境下配置Tomcat使用80端口时遇到的问题,包括端口被占用、多项目访问失败等,并提供详细的解决方法和配置建议。 ... [详细]
  • 云计算的优势与应用场景
    本文详细探讨了云计算为企业和个人带来的多种优势,包括成本节约、安全性提升、灵活性增强等。同时介绍了云计算的五大核心特点,并结合实际案例进行分析。 ... [详细]
  • JavaScript 中创建对象的多种方法
    本文详细介绍了 JavaScript 中创建对象的几种常见方式,包括对象字面量、构造函数和 Object.create 方法,并提供了示例代码和属性描述符的解释。 ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 使用JS、HTML5和C3创建自定义弹出窗口
    本文介绍如何结合JavaScript、HTML5和C3.js来实现一个功能丰富的自定义弹出窗口。通过具体的代码示例,详细讲解了实现过程中的关键步骤和技术要点。 ... [详细]
  • docker镜像重启_docker怎么启动镜像dock ... [详细]
  • MySQL Debug 模式的实现与应用
    本文详细介绍了如何启用和使用 MySQL 的调试模式,包括编译选项、环境变量配置以及调试信息的解析。通过实际案例展示了如何利用调试模式解决客户端无法连接服务器的问题。 ... [详细]
  • Eclipse 中 JSP 开发环境配置指南
    本文详细介绍了如何在 Eclipse 集成开发环境中配置 JSP 运行环境,包括必要的软件下载、Tomcat 服务器的配置以及常见问题的解决方法。 ... [详细]
  • 本文详细介绍了如何正确安装Java EE SDK,并解决在安装过程中可能遇到的问题,特别是关于servlet代码在Apache Tomcat 10中无法运行的情况。 ... [详细]
author-avatar
顾世嵐
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有