本文實(shí)例為大家分享了java webservice上傳下載文件代碼,供大家參考,具體內(nèi)容如下
1、新建動(dòng)態(tài)web工程youmeFileServer,新建包c(diǎn)om,里面新建類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ù),寫入文件輸出流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()        + "http://";    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ā)布測試webservice(eclipse Java EE IDE) 
右鍵剛才建立的類,現(xiàn)在webservice-->create webservice,webservice type 選擇bottom upjava bean web service,service implementation 選擇目標(biāo)類,下一步選擇要發(fā)布公開的方法接口,直到完成,tomcat已啟動(dòng),右鍵剛生成的wsdl文件夾里面的wsdl文件,選擇測試webservice,輸入對應(yīng)方法的參數(shù)即可。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選