У меня есть base64-кодированная переменная с двоичными данными (изображением), и я пытаюсь ее сохранить с помощью TideSDK, но без PHP (только JS). Ti.Filesystem.getFileStream() + .open() + .write() в этом случае не работает, и я не нашел рабочего примера.Запись двоичного файла в TideSDK
1
A
ответ
0
это совсем не возможно. Я просматриваю код, и «строка» onyl может быть сохранена в файл. (я проверил код OSX)
Вы можете добавить эту функцию PHP для вашего 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 материал. Неправильный браузер игнорирует это.
в моем 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 сенсорного конструктор» и он работает хорошо.
Привет
Andreas
0
Andreas, что вы говорите, совершенно неверно. Есть выход!
Я написал эту функцию, которая помогает вам кодировать файлы в 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;
};
Это делает все трюк без свихнулся .. .