在我的Cordova应用程序中,我正在下载任意文件,如图像或视频文件.这是通过Cordova文件传输插件和"Range"标头完成的,因为我需要部分下载文件.
我的问题是,我想将几个小的"字节"文件合并回原来的文件,他们曾经在那里使用该文件.每次我尝试通过FileReader将结果部分读取为binaryString并将它们一起写入新文件时,该文件最终会比原始文件altogther的部分大得多,并且生成的文件无法使用.
任何帮助表示赞赏.
这是我的代码,直到现在(冗长和丑陋):
document.addEventListener('deviceready', deviceready, false);
var App;
var finishedFileUrl = "";
var async = {
sequence: function(items, callback) {
var def = $.Deferred(),
deferrers = [$.Deferred()];
for(var i = 0; i < items.length; i++) {
(function (n) {
deferrers[n + 1] = $.Deferred();
deferrers[n].always(function() {
callback(items[n], deferrers[n + 1]);
});
})(i);
}
deferrers[items.length].always(function() {
def.resolve();
});
deferrers[0].resolve();
return def.promise();
}
}
var aSmallImageArray = [
'' // Put URL to JPG accessible with Range Header Request here
]; …Run Code Online (Sandbox Code Playgroud) 我想在SF2项目中使用"Monolog - > GelfHandler".所以我已经将以下内容添加到我的composer.json中:
"graylog2/gelf-php": "dev-master"
Run Code Online (Sandbox Code Playgroud)
我的SF2 config.yml:
monolog:
handlers:
main:
type: gelf
publisher:
hostname: %Graylog2.Host%
port: %Graylog2.Port%
level: info
formatter: monolog.formatter.session_request
Run Code Online (Sandbox Code Playgroud)
但是现在,如果我想记录某些内容,我在GelfHandler :: write()中收到错误
Gelf\Publisher::publish() must be an instance of Gelf\MessageInterface, string given
Run Code Online (Sandbox Code Playgroud)
这有什么不对?
每个函数都创建新的错误对象.那么我怎么能得到错误的错误呢?例如,这是我的代码:
function main(callback) {
a(function(err) {
if (err) {
callback(new Error('cannot run main function..'));
return
}
})
}
function a(callback) {
b(function(err) {
if (err) {
callback(new Error('cannot run b function'));
return
}
})
}
function b(callback) {
if (1 == 2) callback(new Error('Error in b function'))
}
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我只得到最后一个错误("无法运行主函数")但我想得到以前的所有错误.你有没有最好的实践?
我在做什么是这样的:
if(err){
err=new Error('cannot run this function.\r' + err.message)
}
Run Code Online (Sandbox Code Playgroud)
我问,你知道任何其他图书馆或更好的方法.扩展Error对象的东西......
就像是:
err.push(new Error('...'))
Run Code Online (Sandbox Code Playgroud) 我正在尝试进入buildozer android debug deploy我的cygwin环境.到目前为止它工作得很好,但在尝试构建时,我遇到以下错误:
$ buildozer android debug deploy
# Check configuration tokens
# Ensure build layout
# Check configuration tokens
# Preparing build
# Check requirements for android
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/buildozer-0.15_dev-py2.7.egg/buildozer/targets/android.py", line 92, in check_requirements
self._set_win32_java_home()
File "/usr/lib/python2.7/site-packages/buildozer-0.15_dev-py2.7.egg/buildozer/targets/android.py", line 186, in _set_win32_java_home
import _winreg
ImportError: No module named _winreg
# Install platform
# Apache ANT found at /home/Data/.buildozer/android/platform/apache-ant-1.8.4
# Android SDK found at /home/Data/.buildozer/android/platform/android-sdk-21
# Android NDK found at /home/Data/.buildozer/android/platform/android-ndk-r9c
ERROR: No suitable …Run Code Online (Sandbox Code Playgroud) 我想要实现的是使用"previewfile"函数的返回值作为"readfiles"函数的执行指示器.但这需要在执行"image.onload"部分之后,因为我需要returnThis设置为true.我已经在谷歌和Stackoverflow上研究了一些关于这个问题和一般回调/延迟对象的事情,但是我不能在这种情况下如何应用它.
我的图片上传部分中有以下星座:
function previewfile(file, tests, acceptedTypes, holder) {
var returnThis = false;
if (tests.filereader === true && acceptedTypes[file.type] === true) {
var reader = new FileReader();
reader.onload = function (event) {
var image = new Image();
image.onload = function() {
var testimage = new Image();
testimage.src = $(this).attr('src');
var widthOfImage = testimage.width;
var heightOfImage = testimage.height;
if (!checkImageDimensions(widthOfImage, heightOfImage)) {
// do stuff
} else {
returnThis = true;
}
};
image.src = event.target.result; …Run Code Online (Sandbox Code Playgroud)