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,输入对应方法的参数即可。

你可能感兴趣的:(web Service)