在BackgroundUploader中上传文件需要哪些请求标头

时间:2014-10-02 19:32:25

标签: windows-phone-8 file-io windows-8 winjs

我正在尝试按照以下方式在Windows 8平板电脑上传文件

var uri = new Windows.Foundation.Uri( uriString );
var uploader = new Windows.Networking.BackgroundTransfer.BackgroundUploader();
uploader.method = "POST";

uploader.setRequestHeader( "file", file.name );
uploader.setRequestHeader( "Content-Type", "multipart/form-data" );
upload = uploader.createUpload( uri, file );

我  我正在调用用PHP编写的服务器脚本,如下所示

<?php
if ($_FILES["file"]["error"] > 0) {
  echo "Error: " . $_FILES["file"]["error"] . "<br>";
} else {
  echo "Upload: " . $_FILES["file"]["name"] . "<br>";
  echo "Type: " . $_FILES["file"]["type"] . "<br>";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
  echo "Stored in: " . $_FILES["file"]["tmp_name"];
}
?>

但是当我在Windows 8中执行代码时,它显示我跟随错误

Notice: Undefined index: file in upload.php

这种情况正在发生,因为我在设置请求标头uploader.setRequestHeader时遗漏了一些错误,所以任何人都可以告诉我应该设置哪些请求标头以使其正常工作。

1 个答案:

答案 0 :(得分:0)

我也试图解决这个问题,因为我正在调用我的php文件,但我无法获取该文件。 无论如何,你必须使用另一个功能才能使其正常工作

upload .startAsync().then(
  function succes(resultat) {
    console.log('file uploaded');
  },

  function erreur(resultat) {
    console.log('there is an error');
  },

  function progression(resultat) {
    var pourcentage = Math.round(resultat.progress.bytesSent * 100 / resultat.progress.totalBytesToSend);
    console.log(pourcentage + ' %');
  }
);

如果你发现如何让php工作,请告诉我!