2016-01-20 49 views
2

這是我的HTTPClient上傳圖像到服務器的代碼。在3.5.0.GA SDK和4.1.0.GA SDK中也是如此,但在新的SDK 5.1.1.GA和5.1.2.GA中不起作用。鈦5.1.1.GA SDK圖像文件不在ios上載

var filename = "sample.png"; 
//Pointer to the file to be uploaded. 
var uploadingFile = Titanium.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory, filename); 

Ti.API.info('uploadingFile ' + uploadingFile.exists()); 
//We are creating a new xhr instead of calling the existing one because we dont want timeout when uploading data. 
var xhr = Titanium.Network.createHTTPClient({ 
    validatesSecureCertificate : false, 
    enableKeepAlive : true, 
    onload : function() { 
     uploadingFile = null; 
     Ti.API.info('Success '+tthis.responseText);   
    }, 
    onerror : function(data) { 
     uploadingFile = null; 
     Ti.API.info('this.status '+this.status); 
    } 
}); 

xhr.onsendstream = function(e) { 
    var uploadTime = new Date(); 
    Ti.API.info('UPLOADING PROGRESS: ' + progress + ' ' + uploadTime.getHours() + ":" + uploadTime.getMinutes() + ":" + uploadTime.getSeconds()); 
}; 

xhr.open('POST', httpClient.getUserDomainInfo(config.URLs.imageupload, tenant)); 
xhr.send({ 
    file : uploadingFile.read(), 
    claimId : claimID, 
    filename : filename, 
    description : '' 
}); 

錯誤狀態爲500內部服務器錯誤。

是SDK中的問題還是我需要在代碼中進行更改的問題。

請幫幫我。

+0

500錯誤表示您的服務器當時正忙或未響應。請檢查您的網址是否正常工作。 –

+0

您的服務器上傳腳本中也可能有錯誤 – Sebastian

+0

相同的URL和相同的代碼在3.5.0.GA SDK和4.1.0.GA SDK中可用。所以我的假設是服務器上傳腳本很好。剛剛在4.1.0GA嘗試過。我再次嘗試在5.1.1GA沒有工作。 – Venkatesh

回答

0

下面的代碼演示了文件上傳。根據您的代碼進行修改。

f1 = Titanium.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory,<image name>); 
i1 = f1.read(); 
xhr = Titanium.Network.createHTTPClient(); 
xhr.open('POST','<url to call>', false); // false makes it synchronous 
xhr.onload = function() { handleAfterSentRouting(this.responseText); }; 
xhr.send({media1: i1}); // media1 is the field the file information is in when you upload 

謝謝。

0

我遭受了同樣的困難,幾周後的解決方案非常簡單,您只需要在服務器上創建另一個Web服務頁面而不傳遞任何其他文本參數即可,在您的情況下將xhr.send params編輯爲僅包括你的文件,如下所示:

xhr.send({ 
    file : uploadingFile 
}); 

因此,請與另一臺Web服務器頁面的其他變量另一個XHR功能:

claimId : claimID, 
filename : filename, 
description : '' 

它的工作原理;)