zoukankan      html  css  js  c++  java
  • 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+"
    "+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,输入对应方法的参数即可。

  • 相关阅读:
    Vue 全局过滤器和局部过滤器使用方式
    Vue 标签显示/隐藏的方式对比demo
    OpenSSL SSL_read: Connection was reset, errno 10054
    Vue 自定义全局指令和局部指令demo
    Vue 列表渲染demo
    Vue Class样式和style样式编写
    vue中的函数(methods),计算属性(computed),监听器(watch)的区别demo
    Vue 常用指令
    针对 WebSocket 协议的 Locust 压测脚本实现(基于 Locust 1.0 以上版本)
    Locust 脚本开发入门(4)
  • 原文地址:https://www.cnblogs.com/w-y-f/p/3314628.html
Copyright © 2011-2022 走看看