2012-03-20 6 views
1

Впечатление от того, как заставить Filetransfer APi работать как часть формы отправки. В настоящее время вы выбираете изображение и автоматически отправляете его на сервер, однако для приложения мне нужны другие данные, отправляемые вместе с ним. У меня есть другие части, которые работают правильно, я нуждаюсь в том, что это только текст/параметр, но зато заточенный с изображением.PhoneGap File Transfer Image submit form

атм им просто глядя на Zac примере виноградников код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4 /strict.dtd"> 
<html> 
<head> 
<title>File Transfer Example</title> 
<script type="text/javascript" charset="utf-8" src="phonegap-1.2.0.js"></script> 
<script type="text/javascript" charset="utf-8"> 

    // Wait for PhoneGap to load 
    document.addEventListener("deviceready", onDeviceReady, false); 

    // PhoneGap is ready 
    function onDeviceReady() { 
// Do cool things here... 
    } 

    function getImage() { 
     // Retrieve image file location from specified source 
     navigator.camera.getPicture(uploadPhoto, function(message) { 
alert('get picture failed'); 
},{ 
quality: 50, 
destinationType: navigator.camera.DestinationType.FILE_URI, 
sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY 
} 
     ); 

    } 

    function uploadPhoto(imageURI) { 
     var options = new FileUploadOptions(); 
     options.fileKey="file"; 
     options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1); 
     options.mimeType="image/jpeg"; 

     var params = new Object(); 
     params.value1 = "test"; 
     params.value2 = "param"; 

     options.params = params; 
     options.chunkedMode = false; 

     var ft = new FileTransfer(); 
     ft.upload(imageURI, "http://yourdomain.com/upload.php", win, fail, options); 
    } 

    function win(r) { 
     console.log("Code = " + r.responseCode); 
     console.log("Response = " + r.response); 
     console.log("Sent = " + r.bytesSent); 
     alert(r.response); 
    } 

    function fail(error) { 
     alert("An error has occurred: Code = " = error.code); 
    } 

    </script> 
</head> 
<body> 
<button onclick="getImage();">Upload a Photo</button> 
</body> 
</html> 

Если кто-нибудь есть какие-либо идеи, было бы гораздо appriciated. Ive пробовал много разных вещей. Я работал над настольной платформой, но когда я использую свой телефон, который является Android, если это что-то связано с ним. Это не работает. Спасибо

+0

Вы уже посылать дополнительные данных через объект опций. Посмотрите на объект options.params. – sgimeno

ответ

0

Вы добавляете пары ключ/значение, которые вы хотите отправить в качестве членов объекта «params». Скажем, если вы хотите отправить UID = сервер 1234 и = па то вы могли бы сделать:

var params = new Object(); 
params.uid = "1234"; 
params.server = "na"; 
0

вы можете отправить другие данные говорят objetId и изображение так:

 options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1)+".jpg";  
     var upload_url="http:YourDomain.com 
     /upload?token="+objectId+"&filenaam="+options.fileName; 
     ft.upload(imageURI, upload_url, win, fail, options);