Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript文件读取器和文件同步_Javascript_Ajax_Browser_Synchronization_Filereader - Fatal编程技术网

Javascript文件读取器和文件同步

Javascript文件读取器和文件同步,javascript,ajax,browser,synchronization,filereader,Javascript,Ajax,Browser,Synchronization,Filereader,问题是:我的电脑上有一个随机应用程序生成的文件。该应用程序可以在随机时间编辑该文件,而无需任何警告。我需要定期(比如每5秒或30秒)将文件发送到服务器。在此之前,我使用了一个小cURL脚本,但由于我经常需要从不同的工作站执行此过程,我想创建一个带有选择输入和启动此功能的按钮的小页面: var syncFunc = function(){ var reader = new FileReader(); reader.readAsText($("#file")[0].files[0])

问题是:我的电脑上有一个随机应用程序生成的文件。该应用程序可以在随机时间编辑该文件,而无需任何警告。我需要定期(比如每5秒或30秒)将文件发送到服务器。在此之前,我使用了一个小cURL脚本,但由于我经常需要从不同的工作站执行此过程,我想创建一个带有选择输入和启动此功能的按钮的小页面:

var syncFunc = function(){
    var reader = new FileReader();
    reader.readAsText($("#file")[0].files[0]);
    reader.onload = function() { 
            var datas = reader.result; 

            $.ajax({
              url : 'callback',
              type : 'POST',
              data : {"data" : datas},
              success : function(data) {
              //do stuff
             },
            complete : function(data){
                syncTimeout = setTimeout(syncFunc, 5000);
            }
            });
    };
};
当我启动脚本时,一切都很顺利,直到应用程序更改了文件:有时(不总是)FileReader抛出DomeException
NotReadableError
reader。结果
包含
null
。如果我从输入中重新选择该文件,则可以毫无问题地再次读取该文件,但如果我不这样做,任何后续的读取尝试都会失败。更让我头疼的是,这种情况实际上是以随机方式发生的,对所选文件的相同编辑有时不会产生错误

此外,如果我尝试使用FormData发送文件,则会读取并发送该文件(我可以使用Inspector检查并检查发出的HTTP请求),但服务器会抛出错误“上载未完成”)


知道吗?

这个其他应用程序编辑文件需要多长时间?可能因为同时读写而感到不安。在Bort或OneError上重试是否总是失败,或者最终会成功?我不认为这是问题所在,因为如果在阅读前30秒进行编辑,也会发生错误。使用onabort/onerror总是失败