2012-10-07 44 views
1

我正在嘗試爲某些網站開發移動應用程序,該應用程序使用HTML表單進行數據傳輸。 目前我正在爲Android開發,但這個應用程序也應該在iOS和WP7上(這就是爲什麼我選擇了PhoneGap)。通過Android上的HTML FIleUpload將圖像上載到服務器

我使用的表格有<input type="file">標籤,我應該通過圖片本身,因爲我沒有訪問服務器部分。

我已經試過:

  1. 要使用<input type="file">標籤,因爲它在形式,但它確實沒有打開filepicker對話框。
  2. 要使用PhoneGap方法以base64格式獲取圖像並將其附加到表單參數,但服務器無法將其識別爲有效文件。 爲了完成這個我使用下面的函數:

    function fileUpload (url, fileData, fileName) { 
    
    var fileSize = fileData.length, 
        boundary = "12352134", 
        xhr = new XMLHttpRequest(); 
    
    xhr.open("POST", url, true); 
         // simulate a file MIME POST request. 
    xhr.setRequestHeader("Content-Type", "multipart/form-data, boundary="+boundary); 
    xhr.setRequestHeader("Content-Length", fileSize); 
    
    var body = "--" + boundary + "\r\n"; 
    body += 'Content-Disposition: form-data; name="imagen"; filename="' + fileName + '"\r\n'; 
    body += "Content-Type: image/jpeg\r\n\r\n"; 
    body += fileData + "\r\n"; 
    body += "--" + boundary + "--"; 
    
    xhr.send(body); 
    return true; 
    

    }

我不能使用Ajax傳遞只是一個形象,因爲我沒有獲得組建和所有的數據必須是完整的。

回答

1

input [type = file]在所有設備上的工作將不一致。低於版本6的iOS設備根本不支持它。但是,PhoneGap確實可以讓您訪問文件系統。您可以提供另一種選擇文件的方式。請參閱FileSystem文檔:http://docs.phonegap.com/en/2.1.0/cordova_file_file.md.html#File

這些也討論了FileTransfer對象。這會讓你上傳一個文件。

+0

感謝您的回答。但在我的情況下,我只有一個URL(表單動作),它正在等待一堆參數,其中我有fileuploader()如何保持數據的完整性? –

+0

你問 - 我如何上傳文件+其他表單字段信息?如果是這樣 - FileTransder API非常有可能。檢查文檔。 –

+0

是的,我的意思是。非常感謝您的幫助! –

相關問題