当前位置 : 主页 > 网页制作 > Nodejs >

webservice 文件上传及下载

来源:互联网 收集:自由互联 发布时间:2021-06-24
直接上代码 @Override public UploadFileResponse uploadFile(UploadFileRequest uploadFileRequest) throws BusinessException, TechnicalException { UploadFileResponse response = new UploadFileResponse(); File file = new File("D:/text.txt");

直接上代码

 

    @Override

    public UploadFileResponse uploadFile(UploadFileRequest uploadFileRequest) throws BusinessException, TechnicalException {

 

        UploadFileResponse response = new UploadFileResponse();

        File file = new File("D:/text.txt");

        OutputStream out = null;

        try {

            out = new FileOutputStream(file);

            uploadFileRequest.getFileHandler().writeTo(out);

        } catch (IOException e) {

            throw new TechnicalException(e);

        } finally {

            if (out != null) {

                try {

                    out.close();

                } catch (IOException e) {

                    throw new TechnicalException(e);

                }

            }

        }

        return response;

    }

 

    @Override

    public DownloadFileResponse downloadFile(DownloadFileRequest downloadFileRequest) throws BusinessException, TechnicalException {

 

        DownloadFileResponse response = new DownloadFileResponse();

 

        response.setFileHandler(new DataHandler(new FileDataSource(new File("D:\\move.zip"))));

 

        return response;

    }

 

 

上传下载的vo

 

public class UploadFileRequest extends BasicRequest {

    /**

     * 要上传的文件信息

     */

    private FileInfo file;

    /**

     * 要上传的文件内容

     */

    @XmlMimeType("application/octet-stream") 

    private DataHandler fileHandler;

 

    /**

     * @return the file

     */

    public FileInfo getFile() {

        return file;

    }

 

    /**

     * @param file the file to set

     */

    public void setFile(FileInfo file) {

        this.file = file;

    }

 

    /**

     * @return the fileHandler

     */

    public DataHandler getFileHandler() {

        return fileHandler;

    }

 

    /**

     * @param fileHandler the fileHandler to set

     */

    public void setFileHandler(DataHandler fileHandler) {

        this.fileHandler = fileHandler;

    }

 

}

 

---------------------------------------

public class DownloadFileResponse {

    /**

     * 要上传的文件内容

     */

    @XmlMimeType("application/octet-stream") 

    private DataHandler fileHandler;

 

    /**

     * @return the fileHandler

     */

    @XmlTransient 

    public DataHandler getFileHandler() {

        return fileHandler;

    }

 

    /**

     * @param fileHandler the fileHandler to set

     */

    public void setFileHandler(DataHandler fileHandler) {

        this.fileHandler = fileHandler;

    }

 

}

 

http://localhost:7001/com-bizfty-file-svc/FileGateway

测试下载

 

request

 

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:bean="http://file.bizfty.com/bean">

   <soap:Header/>

   <soap:Body>

      <bean:DownloadFileRequest>

       </bean:DownloadFileRequest>

   </soap:Body>

</soap:Envelope>

 

response

 

<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope">

   <S:Body>

      <ns2:DownloadFileResponse xmlns:ns2="http://file.bizfty.com/bean">

         <fileHandler>UEsDBBQAAAAAANtxwkgA。。。。。。</fileHandler>

      </ns2:DownloadFileResponse>

   </S:Body>

</S:Envelope>

 

上传测试

 

方式一 base64

request

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:bean="http://file.bizfty.com/bean">

   <soap:Header/>

   <soap:Body>

      <bean:UploadFileRequest>

         <file>

         </file>

         <fileHandler>UEsDBBQAAAAAANtx</fileHandler>

        </bean:UploadFileRequest>

   </soap:Body>

</soap:Envelope>

response

<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope">

   <S:Body>

      <ns2:UploadFileResponse xmlns:ns2="http://file.bizfty.com/bean"/>

   </S:Body>

</S:Envelope>

 

方式二 附件

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:bean="http://file.bizfty.com/bean">

   <soap:Header/>

   <soap:Body>

      <bean:UploadFileRequest>

         <file>

         </file>

         <fileHandler>cid:MasterPDFEditor.rar</fileHandler>

  </bean:UploadFileRequest>

   </soap:Body>

   

</soap:Envelope>

response

<S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope">

   <S:Body>

      <ns2:UploadFileResponse xmlns:ns2="http://file.bizfty.com/bean"/>

   </S:Body>

</S:Envelope>

 

 

-------------------------------------------------------------------------

再来一个Restful 文件上传下载

@Path("file")

public class FileResource {

 

    @POST

    @Consumes(MediaType.MULTIPART_FORM_DATA)

    public FileInfo upload(

            @FormDataParam("fileName") String fileName,

            @FormDataParam("file") InputStream file,

            @FormDataParam("file") FormDataContentDisposition fileDetail) throws FileNotFoundException, IOException {

        

        FileChannel fileChannel = new FileOutputStream("D:\\test.txt").getChannel(); 

        ReadableByteChannel readChannel = Channels.newChannel(file);  

 

        fileChannel.transferFrom(readChannel, 0, 0);

        FileInfo response = new FileInfo();

        return response;

    }

 

    @GET

    @Path("{id}")

    @Produces(MediaType.APPLICATION_OCTET_STREAM)

    public Response download(@PathParam("id") String id) throws FileNotFoundException {

        File download = new File("D:\\move.zip");

        ResponseBuilder response = Response.ok((Object) download);

        response.header("Content-Disposition", "attachment; filename=move.zip");

        return response.build();

    }

}

 


 

网友评论