Titanium AppceleratorモバイルアプリケーションからWebサーバーに写真を送信しようとしています。チタンXHR - XHR.SEND中にXMLパーサーを誤ってXMLパーサーを使用していて意図的に使用していません
私は、次の例を使用しています:
var upload_token = "hi! I am a token!";
var content = '';
var boundary = '---------------------------170062046428149';
content += '--'+ boundary + '\r\n';
content += 'Content-Disposition: form-data; name="uploadToken"\r\n';
content += '\r\n';
content += upload_token + '\r\n';
content += '--'+ boundary + '\r\n';
content += 'Content-Disposition: form-data; name="myNickname"\r\n';
content += '\r\n';
content += myNickname+'\r\n';
content += '--'+ boundary + '\r\n';
content += 'Content-Disposition: form-data; name="nativePath"\r\n';
content += '\r\n';
content += 'file:///storage/emulated/0/Pictures/app-name/tia-217296905.jpg\r\n';
content += '--'+ boundary + '\r\n';
content += 'Content-Disposition: form-data; name="fileContent"; filename="/appicon.png"\r\n';
content += 'Content-Type: binary/octet-stream\r\n';
content += '\r\n';
var file = Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory, '/appicon.png');
var full_content = Ti.createBuffer({value: content});
var fileStream = Ti.Stream.createStream({ source : file.read(), mode : Titanium.Stream.MODE_READ});
var content_size = full_content.append(Ti.Stream.readAll(fileStream));
Ti.API.debug('Appended File Size : ' + content_size); // ==> same as file.size
content = '\r\n';
content += '--'+ boundary + '--\r\n';
full_content.append(Ti.createBuffer({value : content}));
xhr = Ti.Network.createHTTPClient();
var send_data = full_content.toBlob();
var url = 'http://website.address/api/push_photo.php';
xhr.onload = function(e){
console.log(e);
alert("DONE!");
};
xhr.onerror = function(e){
console.log(e);
};
xhr.open('POST', url);
xhr.setRequestHeader('Content-Type', 'multipart/form-data; boundary=' + boundary);
xhr.send({image:send_data});
すべてが期待通りに、ファイルがサーバーに送信され、私の携帯電話でのチタンのアプリケーションが言う作品「DONE!」。 [ERROR]
:XMLModule:xhr.onloadがトリガされたことを意味している...
私の質問は、私はデベロッパーコンソールで見ることができる午前エラーに関してれる(KrollRuntimeThread)[13440、 XMLModule:[upl ... @ 7:XML [ERROR]:XMLModule:org.xml.sax.SAXParseException:予期しない トークン(位置:TEXT配列[ERROR]:XMLModule:([ERROR]: XMLModule:[upl ... @ 7:[ERROR]:XMLModule:at org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:146) [エラー] :XMLModule:at [エラー]:XMLModule: にti.modules.titanium.xml.XMLModule.parse(XMLModule.java:82)[ERROR ]: XMLModule: XMLModule: ti.modules.titanium.network.TiHTTPClient.getResponseXMLで(TiHTTPClient.java ti.modules.titanium.xml.XMLModule.parse(XMLModule.java:68)[ERROR]で: 562) [ERROR]:XMLModule: でti.modules.titanium.network.HTTPClientProxy.getResponseXML(HTTPClientProxy.java:129) [ERROR]:XMLModule: でorg.appcelerator.kroll.runtime.v8.V8Object。 nativeCallProperty(ネイティブ メソッド)[エラー]:XMLModule: org.appcelerator.kroll.runtime.v8.V8Object.callProperty(V8Object.java:73) [ERROR]:XMLModule:at org.appcelerator.kroll.KrollProxy.handleMessage(KrollProxy.java:1155) [エラー] :XMLModule:at android.os.Handler.dispatchMessage(Handler.java:95)[エラー]: XMLModule:android.os.Looper.loop(Looper.java:137)[エラー]: XMLModule: org.appcelerator.kroll.Kroll.KrollRuntime $ KrollRuntimeThread.run(KrollRuntime.java:118) [エラー]:TiHTTPClient :(KrollRuntimeThread)[7,13656] XMLのエラー解析: XML [ERROR]:TiHTTPClient:org.xml.sax.SAXParseException :予期しない トークン(位置:TEXT配列[エラー]:TiHTTPClient:([ERROR]: TiHTTPClient:[upl ... @ 7:[email protected] 1) [ERROR]:TiHTTPClient: org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:146)で [ERROR]:TiHTTPClient: でjavax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:107) [ERROR]:TiHTTPClient: TiHTTPClient: ti.modules.titanium.xml.XMLModule.parse(XMLModule.java:82)[ERROR]で: TiHTTPClient: ti.modules.titanium.network.TiHTTPClient.getResponseXML(TiHTTPClient.java:562) [ERRORで ti.modules.titanium.xml.XMLModule.parse(XMLModule.java:68)[ERROR]で]:TiHTTPClient:at ti.modules.titanium.network.HTTPClientProxy.getResponseXML( HTTPClientProxy.java:129) [エラー]:TiHTTPClient:at org.appcelerator.kroll.runtime.v8.V8Object。nativeCallProperty(ネイティブ 方法)[ERROR]:TiHTTPClient:TiHTTPClient: org.appcelerator.kroll.KrollProxyでorg.appcelerator.kroll.runtime.v8.V8Object.callProperty(V8Object.java:73) [ERROR]で.handleMessage(KrollProxy.java:1155) [エラー]:TiHTTPClient: とandroid.os.Handler.dispatchMessage(Handler.java:95)[エラー]: TiHTTPClient:android.os.Looper.loop(Looper。 Javaの:137)[ERROR]: TiHTTPClient: org.appcelerator.kroll.KrollRuntime $ KrollRuntimeThread.run(KrollRuntime.java:118) で[WARN]:TiBlob:(KrollRuntimeThread)[24,13680]はgetFileない がサポート非ファイルのblob型の場合[WARN]:TiBlob: (KrollRuntimeThread)[8,13688] getNativePathは ファイル以外のblob型ではサポートされていません。 [情報]:
{"code":0、 "source":{"responseText": "配列\ n(\ n [uploadToken] =>こんにちは 私はトークンです!\ n [myNickname] => raholl \ n [nativePath] => ファイル:///storage/emulated/0/Pictures/app-name/tia-217296905.jpg \ n)\ n "、" location ":" http:// **** 「接続タイプ」:「POST」、「validatesSecureCertificate」:false、「validateSecureCertificate」:false、 \ n接続:キープアライブ\ nContent-Length:166 \ nContent-Type \ nContent-Type \ nContent-Type \ nContent-Type :text/html \ n日時:Wed、 18 5月2016 02:10:12 GMT \ nケープ・アライブ:タイムアウト= 5、 最大= 100 \ nサーバー:Apache/2.2.22 (Debian)\ nVariable:Accept-Encoding \ nX-Android-Received-Millis:1463537845271 \ nX-Android-Sent-Millis:1463 "responseXML":null、 "responseData":{"file":null、 "nativePath":null、 "height":537844807 \ nX-Powered By:PHP/5.5.33-1〜dotdeb + 7.1 \ n " 0、 "length":166、 "width":0、 "mimeType": "text/html"、 "apiName": "Ti.Blob"、 "text": "配列\ n(\ n [uploadToken] = >こんにちは!私はトークンです!\ n [myNickname] => raholl \ n
[nativePath] => ファイル:///storage/emulated/0/Pictures/app-name/tia-217296905.jpg \ n) "、" type ":2、" bubbleParent ":true}、" autoRedirect ":true、" apiName ":" Ti.Network.HTTPClient "、" autoEncodeUrl ":true、" connected ":false、" bubbleParent ":true 、 "_イベント":{ "disposehandle":{}}}、 "成功":真} [INFO]:ALERT(KrollRuntimeThread)[8,13696]この「エラー解析は何行
行いますXML [ERROR] "の出番ですか?それを修正する方法
すべてはうまくいくようですが、エラーはかなり深刻です...
すべてのアイデアをいただければ幸いです。