Чтение Oracle BLOB с использованием InputStream и загрузка его на сервер, работающий PHP - PullRequest
0 голосов
/ 27 января 2020

У меня есть BLOB (представляющий медиа-файл - обычно MP4), хранящийся в Oracle DB, которую я затем получаю следующим образом:

Blob blob = result.getBlob("filedata");
InputStream is = blob.getBinaryStream();
// The table also has a column called `fileSize` that stores the size of the blob

Затем я хочу загрузить этот BLOB-объект в удаленный сервер, работающий PHP без , сначала сохраняющий большой двоичный объект в файл в файловой системе.

Код PHP довольно прост, в основном:

move_uploaded_file($_FILES['Filedata']['tmp_name'], $fullPath);

Это хорошо работает, если я читаю большой двоичный объект, используя InputStream, сохраняю его в FS следующим образом:



                        os = new FileOutputStream(targetFile);
                        byte[] buffer = new byte[8 * 1024];
                        int bytesRead;
                        // `is` is an InputStream object
                        while ((bytesRead = is.read(buffer)) != -1)
                        {    
                                os.write(buffer, 0, bytesRead);
                        }  

И затем считываю это в FileInputStream, который я передаю по HTTP (используя действие RESTful API) , Но я ищу способ избежать этого процесса и напрямую загрузить его из InputStream.

Заранее спасибо,

...