fmsystem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fmsystem-commits] [16984] soap client braarkiv: get files by chunks


From: sigurdne
Subject: [Fmsystem-commits] [16984] soap client braarkiv: get files by chunks
Date: Thu, 17 Aug 2017 08:07:59 -0400 (EDT)

Revision: 16984
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=16984
Author:   sigurdne
Date:     2017-08-17 08:07:58 -0400 (Thu, 17 Aug 2017)
Log Message:
-----------
soap client braarkiv: get files by chunks

Modified Paths:
--------------
    trunk/property/inc/soap_client/bra5/soap.php

Modified: trunk/property/inc/soap_client/bra5/soap.php
===================================================================
--- trunk/property/inc/soap_client/bra5/soap.php        2017-08-17 08:36:14 UTC 
(rev 16983)
+++ trunk/property/inc/soap_client/bra5/soap.php        2017-08-17 12:07:58 UTC 
(rev 16984)
@@ -171,10 +171,40 @@
 
        if ($fileid)
        {
-               $bra5ServiceGet = new Bra5ServiceGet();
+               $get_chunked = true;
+               if($get_chunked)
+               {
+                       $Bra5ServiceFile = new Bra5ServiceFile();
 
-               if ($bra5ServiceGet->getFileAsByteArray(new 
Bra5StructGetFileAsByteArray($secKey, $fileid)))
+                       $_fileid = 
$Bra5ServiceFile->fileTransferRequestChunkedInit(new 
Bra5StructFileTransferRequestChunkedInit($secKey, 
$fileid))->fileTransferRequestChunkedInitResult->fileTransferRequestChunkedInitResult;
+
+                       // Offset er posisjon i fila
+                       $offset = 0;
+                       $base64string = "";
+                       $fp = fopen("php://temp", 'w');
+
+                       // kjører løkke til tekstverdien vi får i retur er null
+                       while (($base64string = 
$Bra5ServiceFile->fileTransferRequestChunk(new 
Bra5StructFileTransferRequestChunk($secKey, $_fileid, 
$offset))->fileTransferRequestChunkResult->fileTransferRequestChunkResult) != 
null)
+                       {
+                               fputs($fp, base64_decode($base64string));
+                               // Oppdaterer offset til filens foreløpige 
lengde
+                               $offset += strlen($base64string);
+                       }
+                       // Avslutter nedlasting
+                       $Bra5ServiceFile->fileTransferRequestChunkedEnd(new 
Bra5StructFileTransferRequestChunkedEnd($secKey, $_fileid));
+
+                       $browser = CreateObject('phpgwapi.browser');
+                       $browser->content_header("{$fileid}.pdf", 
'application/pdf');
+
+                       // Read what we have written.
+                       rewind($fp);
+                       echo stream_get_contents($fp);
+                       $GLOBALS['phpgw']->common->phpgw_exit();
+               }
+               else if (!$get_chunked)
                {
+                       $bra5ServiceGet = new Bra5ServiceGet();
+                       $bra5ServiceGet->getFileAsByteArray(new 
Bra5StructGetFileAsByteArray($secKey, $fileid));
                        $file_result = 
$bra5ServiceGet->getResult()->getFileAsByteArrayResult;
                        $file = 
base64_decode($file_result->getFileAsByteArrayResult);
                        /*
@@ -194,6 +224,7 @@
                        $GLOBALS['phpgw']->common->phpgw_exit();
                }
        }
+
        $bra5ServiceSearch = new Bra5ServiceSearch();
        /*
          if($bra5ServiceSearch->searchDocument(new 
Bra5StructSearchDocument($secKey,$baseclassname,$classname,$_where,$_maxhits = 
2)))




reply via email to

[Prev in Thread] Current Thread [Next in Thread]