바이너리 데이터 (이미지)로 base64 인코딩 된 변수가 있는데 TideSDK를 사용하여 저장하려고하는데 없이 PHP (그냥 JS)이 저장됩니다. Ti.Filesystem.getFileStream() + .open() + .write()는이 경우 작동하지 않으며 작동하는 예제를 찾지 못했습니다.TideSDK에 이진 파일 쓰기.
1
A
답변
0
이것은 전혀 가능하지 않습니다. 코드를 검토하고 onyl "string"을 파일에 저장할 수 있습니다. 당신은 당신의 index.html을
<script type="text/php">
// required for the TideSDK file storage
// normal HTML5 browser ignores this part of code because the type is set to PHP.
// TideSDK with PHP binding run this code
//
function tideSDK_writeBase64AsBinaryData($fileName, $base64){
$binary=base64_decode($base64);
$file = fopen($fileName, "w");
fwrite($file, $binary);
fclose($file);
}
</script>
이 코드가 "정상"HTML 또는 JS 물건 손상되지 않았다이 PHP 함수를 추가 할 수 있습니다
(나는 OSX에 대한 코드를 확인). 일반 브라우저는 이것을 무시합니다. 내 JS 코드에서
나는 이진 데이터saveFile: function(fileName, content, contentIsBase64, successCallback, errorCallback) {
try{
if(contentIsBase64){
tideSDK_writeBase64AsBinaryData(fileName, content);
}
else{
//Doesn't have to exist yet.
var fileHandle = Ti.Filesystem.getFile(fileName);
var stream = Ti.Filesystem.getFileStream(fileHandle);
stream.open(Ti.Filesystem.MODE_WRITE,false);
stream.write(content);
stream.close();
}
successCallback({title: fileName});
}
catch(e){
errorCallback();
}
},
나는 "Draw2D 터치 디자이너 '프로젝트의 바탕 화면 버전이 사용하고 잘 작동을 저장하는 그런 논리를 가지고있다.
인사말
완전히 거짓 뭐라고 안드레아스
0
안드레아스. 방법이 있습니다!
난 당신이 base64로 파일을 인코딩하고 당신이 필요로하는 문자열을 얻을하는 데 도움이 기능을 썼습니다 : (크레딧을 잊지 마세요;))function encodeFileto64(path){
var f = path;
var file = Ti.Filesystem.getFile(f);
var stream = file.open(Ti.Filesystem.MODE_READ);
var obj = stream.read();
var base = Ti.Codec.encodeBase64(obj);
base = base.replace(/[\n\r]/g, '');
return base;
};
이 견과류하지 않고 모든 트릭을 수행을 .. .