2016-04-25 11 views
-1

私はphpファイルにformdataを送信して処理するスクリプトを持っています。XMLHttpRequest()のファイルと一緒に '通常の'データを追加します。

フォームデータはファイルの配列ですが、ファイルの元の変更されたdateTimeを含むいくつかの文字列も送信したいと考えています。私はこれが単なる一本ライナーだと思っていましたが、うまくいかず、理由はわかりません。

オブジェクトコード:

var app = app || {}; 

(function(o){ 
    "use strict" 

    var ajax, getFormData, setProgress; 

    ajax = function(data){ 
     var xmlhttp = new XMLHttpRequest(), uploaded; 
     xmlhttp.addEventListener('onreadystatechange', function(){ 
      if(xmlhttp.readystate === 4){ 
       if(xmlhttp.status === 200){ 
        $('#pt').html("Upload complete"); 
       } else { 
        $('#pt').html("Upload Error, please try again"); 
       } 
      } 
     }); 
     xmlhttp.upload.addEventListener('progress', function(event){ 
      var percent; 
      if(event.lengthComputable === true){ 
       percent = Math.round(event.loaded/event.total * 100); 
       setProgress(percent); 
      } 
     }); 
     xmlhttp.open('POST', o.options.processor); 
     xmlhttp.send(data); 
    } 
    getFormData = function(src){ 
     var data = new FormData(), i; 
     for(i=0;i<src.length;i++){ 
      data.append('file[]',src[i]); 
Here -----> // fileDate = new Date(src[i].lastModified) 
----------> // data.append(fileDate) 
     } 
     data.append('formSent',true); 
     return data; 
    } 
    setProgress = function(val){ 
     $('#pb').animate({width:val+"%"},10); 
     $('#pt').html(val+"%"); 
    } 

    o.uploader = function(opt){ 
     o.options = opt; 
     if(o.options.files !== undefined){ 
      ajax(getFormData(o.options.files.files)); 
     } 
    } 
}(app)); 

オブジェクトを呼び出す:私は最近、Pythonで多くのことを働いてきたし、私のJavascriptがかなり錆びている

$('#submit').click(function(e){ 
      e.preventDefault(); 
      $('#progressContainer').slideDown(10); 
      var f = $('#file'), 
       pb = $('#pb'), 
       pt = $('#pt'); 
       fileDate = new Date(f.files[0].lastModified) 
      alert(fileDate) 
      // Upload file to server 
      app.uploader({ 
       files:f, 
       progressBar:pb, 
       progressText:pt, 
       processor:'scripts/php/upload.php' 
      }); 
     }); 

を。あなたは、ほとんどがあった

答えて

0

、あなたはちょうどあなたが渡したいパラメータの名前を設定する必要があります。

data.append("myParameterName", fileDate); 

それが日付値ですので、あなたはミリ秒-以来-、UNIXに変換したいかもしれませんエポック値(fileDate.valueOf())またはISO文字列(fileDate.toISOString())です。

Further reading

+0

[slaps self in face]。私はそれがキー:値のペアを取ることを完全に忘れてしまった。それは今働く:) –

関連する問題