0
//photo - image in Blob type
//no problems with it, checked with FileReader.readAsDataURL & <img>
var form = new FormData()
form.append('file1', photo, 'image.jpg')
ajax.post(url, form, callback) //no photos uploaded

私がやろうとしていることのドキュメント:VKサーバーへのファイルのアップロード手順(ステップ2)

では、ブロブを POST パラメータとして渡すにはどうすればよいですか?

リクエストのイメージ

4

1 に答える 1

2

Mozilla Developer Network にある完全なファイル アップロードの例

https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications#Example.3A_Uploading_a_user-selected_file

を使用FileReader.readAsBinaryString()してデータを読み取り、次に XHRsendAsBinary()を使用して IO を前方にプッシュします

function FileUpload(img, file) {
  var reader = new FileReader(); 
  this.ctrl = createThrobber(img);
  var xhr = new XMLHttpRequest();
  this.xhr = xhr;

  var self = this;
  this.xhr.upload.addEventListener("progress", function(e) {
        if (e.lengthComputable) {
          var percentage = Math.round((e.loaded * 100) / e.total);
          self.ctrl.update(percentage);
        }
      }, false);

  xhr.upload.addEventListener("load", function(e){
          self.ctrl.update(100);
          var canvas = self.ctrl.ctx.canvas;
          canvas.parentNode.removeChild(canvas);
      }, false);
  xhr.open("POST", "http://demos.hacks.mozilla.org/paul/demos/resources/webservices/devnull.php");
  xhr.overrideMimeType('text/plain; charset=x-user-defined-binary');
  reader.onload = function(evt) {
    xhr.sendAsBinary(evt.target.result);
  };
  reader.readAsBinaryString(file);
}
于 2012-10-17T22:13:34.890 に答える