java web service 上傳下載文件


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,輸入對應方法的參數即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM