2016-02-23 2 views
0

Я разрабатываю приложение, использующее Apache Cordova для Visual Studio. Цель этого приложения - сделать снимок с помощью телефона и загрузить эту картинку вместе с некоторыми другими пользовательскими входными данными на веб-страницу нашей компании, которая использует базу данных SQL-сервера для хранения своих данных.Cordova - Вставить в базу данных веб-страницы

Итак, вопрос в том, как я могу вставить данные в эту базу данных, чтобы я мог показать их на веб-странице, учитывая, что приложение будет использоваться за пределами нашей сети? Таким образом, это не может быть локальное подключение к нашей базе данных!

ответ

0
var pictureSource; 
var destinationType; 
document.addEventListener("deviceready", onDeviceReady, false); 

На устройстве готовы

function onDeviceReady() { 
    pictureSource = navigator.camera.PictureSourceType; 
    destinationType = navigator.camera.DestinationType; 
} 

Clean Up

function clearCache() { 
    navigator.camera.cleanup(); 
} 

var retries = 0; 

Загрузить фото взяты из камеры

function onCapturePhoto(fileURI) { 
document.getElementById('MyElement').innerHTML = 'Uploading....'; 
    var win = function (r) { 
    clearCache(); 
    retries = 0; 
    document.getElementById('MyElement').innerHTML = ''; 
    alert('Image Uploaded! Successfully'); 
}; 

var fail = function (error) { 
    if (retries === 0) { 
     retries++; 
     setTimeout(function() { 
      document.getElementById('MyElement').innerHTML = ''; 
      onCapturePhoto(fileURI); 
     }, 1000); 
    } else { 
     retries = 0; 
     clearCache(); 
     document.getElementById('MyElement').innerHTML = ''; 
     alert('Something went wrong..Try Again'); 
    } 
}; 
var options = new FileUploadOptions(); 
options.fileKey = "file"; 
options.fileName = fileURI.substr(fileURI.lastIndexOf('/') + 1); 
options.mimeType = "image/jpeg"; 
options.params = {}; 
var ft = new FileTransfer(); 
ft.upload(fileURI, encodeURI("http://yourserver.com/phpfile.php"), win, fail, options); 
} 

    function onFail(message) { 
    alert(message); 
    } 

Функция для вызова камеры

< a href = "#" onclick = "capturePhoto();" > Take Picture </с >

function capturePhoto() { 
     navigator.camera.getPicture(onCapturePhoto, onFail, { 
     quality: 100, 
     destinationType: destinationType.FILE_URI, 
     sourceType: Camera.PictureSourceType.CAMERA, 
     encodingType: Camera.EncodingType.JPEG 
    }); 
    } 

Php часть

   <?php 
      $sourcePath = $_FILES['file']['tmp_name']; 
      $targetPath = "images/".$_FILES['file']['name']; // save uploaded image to images folder 
      move_uploaded_file($sourcePath,$targetPath) ; 
      ?> 
+0

Спасибо за помощь. Но где загрузить в базу данных сайта? –

+0

Переменная $ targetPath возвращает путь, где находится изображение, поэтому вы сохраняете его в своей базе данных с помощью mysql – Whebcraft

+0

Фантастический! Он загружается на сервер, только пропущенная информация загружается в базу данных, но я могу это сделать. Спасибо, сэр! –

0

Вам необходимо настроить защищенный API, имеющий доступ к этой базе данных. Затем вы можете сделать http POST из своего приложения Cordova в конечную точку, которая сохраняет изображение в базе данных. Вы можете использовать кодировку base64, чтобы облегчить передачу данных изображения. Затем вы можете читать изображения из базы данных, как обычно!

Все, что вам нужно сделать на стороне Кордовы, было бы отправить HTTP-запрос с данными вашего изображения на сервер API. Вы можете сделать это с помощью vanilla JS ala XMLHttpRequest или с плагином Cordova, подобным этому https://github.com/wymsee/cordova-HTTP.

На стороне сервера будет немного сложнее, так как вам потребуется создать конечную точку API, которая сохраняет данные изображения на вашем сервере MS-SQL. Вы должны проверить это объяснение высокого уровня: https://technet.microsoft.com/en-us/library/aa258693(v=sql.80).aspx. Существуют также интерфейсы Node.js для серверов MS-SQL, если это ваша фантазия.

+0

Любые намеки или учебники о том, как сделать это? Помня о том, что im New для разработки с кордорой –

+0

@ RafaelMaria, я попытался дать вам небольшое представление о том, куда идти отсюда (см. Править). Вам просто понадобится ваш API для выполнения инструкции INSERT в вашей БД с изображением, переданным как параметр в HTTP-запрос. –

+0

Спасибо за помощь. Я прочитаю его и попытаюсь найти решение –

Смежные вопросы