欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java webservice上傳下載文件代碼分享

 更新時(shí)間:2016年08月24日 10:53:55   作者:※WYF※  
這篇文章主要為大家詳細(xì)介紹了java webservice上傳下載文件代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了java webservice上傳下載文件代碼,供大家參考,具體內(nèi)容如下

1、新建動(dòng)態(tài)web工程youmeFileServer,新建包c(diǎn)om,里面新建類(lèi)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");
  }

  /*
   * 文件上傳服務(wù)
   */
  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);
      // 將字節(jié)數(shù)組bytes中的數(shù)據(jù),寫(xiě)入文件輸出流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
    {
      
    }
  }

  /*
   * 文件下載服務(wù)
   */
  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 個(gè)字節(jié)的數(shù)據(jù)讀入字節(jié)數(shù)組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;
  }
  /*
   * 獲取當(dāng)前時(shí)間
   */
  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());//獲取當(dāng)前時(shí)間   
      return formatter.format(curDate); 
    }
    catch(Exception ex)
    {
      System.out.println(ex.getMessage());
      return "";
    }
  }

  /*
   * 獲取當(dāng)前日期
   */
  private static String getDataString()
  {
    try
    {
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");   
      Date curDate = new Date(System.currentTimeMillis());//獲取當(dāng)前時(shí)間   
      return formatter.format(curDate); 
    }
    catch(Exception ex)
    {
      System.out.println(ex.getMessage());
      return "";
    }
  }  
  
} 

2、發(fā)布測(cè)試webservice(eclipse Java EE IDE) 

右鍵剛才建立的類(lèi),現(xiàn)在webservice-->create webservice,webservice type 選擇bottom upjava bean web service,service implementation 選擇目標(biāo)類(lèi),下一步選擇要發(fā)布公開(kāi)的方法接口,直到完成,tomcat已啟動(dòng),右鍵剛生成的wsdl文件夾里面的wsdl文件,選擇測(cè)試webservice,輸入對(duì)應(yīng)方法的參數(shù)即可。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java獲取工程路徑方法詳解

    Java獲取工程路徑方法詳解

    這篇文章主要介紹了Java獲取工程路徑方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Springboot框架實(shí)現(xiàn)自動(dòng)裝配詳解

    Springboot框架實(shí)現(xiàn)自動(dòng)裝配詳解

    在使用springboot時(shí),很多配置我們都沒(méi)有做,都是springboot在幫我們完成,這很大一部分歸功于springboot自動(dòng)裝配。本文將詳細(xì)為大家講解SpringBoot的自動(dòng)裝配原理,需要的可以參考一下
    2022-08-08
  • Java設(shè)計(jì)模式七大原則之單一職責(zé)原則詳解

    Java設(shè)計(jì)模式七大原則之單一職責(zé)原則詳解

    單一職責(zé)原則(Single Responsibility Principle, SRP),有且僅有一個(gè)原因引起類(lèi)的變更。簡(jiǎn)單來(lái)說(shuō),就是針對(duì)一個(gè)java類(lèi),它應(yīng)該只負(fù)責(zé)一項(xiàng)職責(zé)。本文將詳細(xì)介紹一下Java設(shè)計(jì)模式七大原則之一的單一職責(zé)原則,需要的可以參考一下
    2022-02-02
  • Swagger2不被SpringSecurity框架攔截的配置及說(shuō)明

    Swagger2不被SpringSecurity框架攔截的配置及說(shuō)明

    這篇文章主要介紹了Swagger2不被SpringSecurity框架攔截的配置及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Java中的ClassLoader類(lèi)加載器使用詳解

    Java中的ClassLoader類(lèi)加載器使用詳解

    這篇文章主要介紹了Java中的ClassLoader類(lèi)加載器使用詳解,ClassLoader用于將CLASS文件動(dòng)態(tài)加載到JVM中去,是所有類(lèi)加載器的基類(lèi),所有繼承自抽象的ClassLoader的加載器,都會(huì)優(yōu)先判斷是否被父類(lèi)加載器加載過(guò),防止多次加載,需要的朋友可以參考下
    2023-10-10
  • 詳解Spring中bean生命周期回調(diào)方法

    詳解Spring中bean生命周期回調(diào)方法

    本篇文章主要介紹了詳解Spring中bean生命周期回調(diào)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • 閑言碎語(yǔ)-逐步了解Spring

    閑言碎語(yǔ)-逐步了解Spring

    這篇文章主要介紹了閑言碎語(yǔ)-逐步了解Spring,涉及Spring的誕生,簡(jiǎn)介,作用等相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • springboot多模塊多環(huán)境配置文件問(wèn)題(動(dòng)態(tài)配置生產(chǎn)和開(kāi)發(fā)環(huán)境)

    springboot多模塊多環(huán)境配置文件問(wèn)題(動(dòng)態(tài)配置生產(chǎn)和開(kāi)發(fā)環(huán)境)

    這篇文章主要介紹了springboot多模塊多環(huán)境配置文件問(wèn)題(動(dòng)態(tài)配置生產(chǎn)和開(kāi)發(fā)環(huán)境),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 詳解java.lang.reflect.Modifier.isInterface()方法

    詳解java.lang.reflect.Modifier.isInterface()方法

    這篇文章主要介紹了詳解java.lang.reflect.Modifier.isInterface()方法的相關(guān)資料,這里提供實(shí)例幫助大家理解這個(gè)方法的使用,需要的朋友可以參考下
    2017-09-09
  • 詳解Java并發(fā)編程之原子類(lèi)

    詳解Java并發(fā)編程之原子類(lèi)

    這篇文章主要為大家介紹了Java并發(fā)編程之原子類(lèi)介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04

最新評(píng)論