web service文件上传下载

1、首先进行文件上传下载的的ws操作首先要在我们的项目中添加activation.jar的jar包;

2、创建一个服务类

public class FileService {

       //WS的文件上传与下载的服务类

       Log log = LogFactory.getLog(FileService.class);

       //创建一个基础 路径

       public static String Repository = "./files";

       //文件上传方法

       public String putFile(DataHandler dh, String name) {

              //判断上传时的文件名

              if(name == null) {

                    name="test.tmp";

              }

              log.info("name:"+name);

              try {

                    //上传的文件的路径是否存在

                    File dir = new File(Repository);

                    if(!dir.exists()) {

                          dir.mkdir();

                          log.info("makedDir :dir "+dir);

                    }

                    //获取上传文件的文件流

                    InputStream input = dh.getInputStream();

                    //创建一个保存文件输出流

                    FileOutputStream fos = new FileOutputStream(new File(dir,name));

                    //创建一个缓冲区

                    byte[] buffer = new byte[1024*4];

                    //读取文件的内容

                    int n = 0;

                    while((n=input.read(buffer))!=-1) {

                           fos.write(buffer,0,n);

                     }

                     input.close();

                     fos.close();

              } catch( Exception e ) {

                         e.printStackTrace();

              }

             return " File: " +name + " send ok ";

       }

       //创建文件的下载方法

      public DataHandler[] getFile(String name) {

             log.info("下载的文件名:"+name);

             File dir = new File(Repository);// 指明文件的下载目录

             if(!dir.exists()) {

                    dir.mkdir();

             }

             if(name!= null && !name.equals("")) { //符合条件的文件下载

                   File data = new File(dir, name);

                   if(data.exists()) { //确保下载的目录和文件存在

                          DataHandler[] handlers = new DataHandler[1]; //每次使用一个传输器

                          handlers[0] = new DataHandler(new FileDataSource(data));//将服务器端的文件包装成数据对象,使用传输器进行传输

                          log.info("handlers : " + handlers + "[" + handlers.length+"}");

                          return handlers; //返回传输器

                  } else {

                          log.info("return null");

                          return null;

           } else {

                   //下载的文件名出现了错误

                   File[]  files = dir.listFiles();

                   DataHandler[] handlers = new DataHandler[files.length];  //准备下载文件夹中的所有的文件

                   for(int i=0; i

                          handlers[i] = new DataHandler(new FileDataSource(files[i])); //为每一个文件创建下载的流

                    }

                    log.info("handlers :" + handlers + "[" +handlers.length+"}");

                    return handlers;  //返回传输器,返回的是多个文件的传输器对象。

           }

      }

}


配置server-config.wsdd文件

         

         

         

你可能感兴趣的:(web,service)