2016-12-16 86 views
0

我想每天做一個調度任務。我有多個服務器,我想自動將HTML文件上傳到我的其他服務器。在這種情況下,我有相同的文件夾我的HTML和我的script.js.Im目前使用Ajax上傳HTML文件,但我想這樣做沒有干擾。這裏是我的JavaScript。我可以使用JavaScript執行計劃任務編程嗎?

$(function(){ 

$("#drop-box").click(function(){ 
    $("#upl").click(); 
}); 

// To prevent Browsers from opening the file when its dragged and dropped on to the page 
$(document).on('drop dragover', function (e) { 
    e.preventDefault(); 
}); 

// Add events 
$('input[type=file]').on('change', fileUpload); 

// File uploader function 

function fileUpload(event){ 
    $("#drop-box").html("<p>"+event.target.value+" uploading...</p>"); 
    files = event.target.files; 
    var data = new FormData(); 
    var error = 0; 
    for (var i = 0; i < files.length; i++) { 
     var file = files[i]; 
     console.log(file.type); 
     if(!file.type.match('html.*')) { 
      $("#drop-box").html("<p> Html only. Select another file</p>"); 
      error = 1; 
     }else if(file.size > 1048576){ 
      $("#drop-box").html("<p> Too large Payload. Select another file</p>"); 
      error = 1; 
     }else{ 
      data.append('html', file, file.name); 
     } 
    } 
    if(!error){ 
     var xhr = new XMLHttpRequest(); 
     xhr.open('POST', 'upload.php', true); 
     xhr.send(data); 
     xhr.onload = function() { 
      if (xhr.status === 200) { 
       $("#drop-box").html("<p> File Uploaded. Select more files</p>"); 
      } else { 
       $("#drop-box").html("<p> Error in upload, try again.</p>"); 
      } 
     }; 
    } 
} 

這個腳本做工精細用我的服務器端,但我希望能夠完成這個網站上傳每day.Is這可能嗎?那SetInterval和SetTimeout呢?

+0

我會在[window.localStorage](https://developer.mozilla.org/en/docs/Web/API/Window/localStorage)上存儲上次上傳日期和時間的偏移量。網站呈現時,只需檢查令牌日期和時間,如果超過24小時,則啓動上傳腳本。 – Elfayer

回答

1

您可以使用JavaScript計劃任務,以便在特定時間間隔內執行任務。但是不能將文件從本地系統上傳到服務器: 由於安全原因,JavaScript無法自行啓動文件傳輸,並且始終需要手動進行用戶交互才能執行此操作。

上述腳本工作的原因是因爲fileUpload()由用戶首先觸發。只要您使用timeout()或​​,瀏覽器就會檢測到該操作未由用戶觸發,並且不允許您上傳用戶數據。

+0

噢好吧,所以我今天學到了一件新事物。如果我使用ajax GET方法在服務器端調用腳本,這會起作用嗎?或者也許在文件內部使用iframe?如果我無法上傳文件並假定此文件已打開,我可以從中提取數據嗎? – user3487389

+0

您無法訪問客戶端上的任何文件。這將是一個非常糟糕的安全問題,不是嗎?如果您在互聯網上訪問的任何網站都能夠讀取您計算機上的文件內容並將其傳輸到服務器。 – maja

相關問題