我正在嘗試爲某些網站開發移動應用程序,該應用程序使用HTML表單進行數據傳輸。 目前我正在爲Android開發,但這個應用程序也應該在iOS和WP7上(這就是爲什麼我選擇了PhoneGap)。通過Android上的HTML FIleUpload將圖像上載到服務器
我使用的表格有<input type="file">
標籤,我應該通過圖片本身,因爲我沒有訪問服務器部分。
我已經試過:
- 要使用
<input type="file">
標籤,因爲它在形式,但它確實沒有打開filepicker對話框。 要使用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傳遞只是一個形象,因爲我沒有獲得組建和所有的數據必須是完整的。
感謝您的回答。但在我的情況下,我只有一個URL(表單動作),它正在等待一堆參數,其中我有fileuploader()如何保持數據的完整性? –
你問 - 我如何上傳文件+其他表單字段信息?如果是這樣 - FileTransder API非常有可能。檢查文檔。 –
是的,我的意思是。非常感謝您的幫助! –