Javascript PHP文件上传XMLHttpRequest传递

Javascript PHP文件上传XMLHttpRequest传递,javascript,php,ajax,Javascript,Php,Ajax,Im使用XMLHttpRequest将文件上载到php脚本。问题是我无法从客户端更改文件名,我正在努力解决如何使用文件发送变量 我在屏幕上有一个文本框,基本上当用户提交文件时,我希望文本框中的文本也转到php文件 以下是我的上传功能: function uploadFile() { var fd = new FormData(); var count = document.getElementById('fileToUpload').files.length;

Im使用XMLHttpRequest将文件上载到php脚本。问题是我无法从客户端更改文件名,我正在努力解决如何使用文件发送变量

我在屏幕上有一个文本框,基本上当用户提交文件时,我希望文本框中的文本也转到php文件

以下是我的上传功能:

 function uploadFile() {

    var fd = new FormData();

          var count = document.getElementById('fileToUpload').files.length;

          for (var index = 0; index < count; index ++)

          {

                 var file = document.getElementById('fileToUpload').files[index];

                 fd.append('myFile', file);


          }
    var xhr = new XMLHttpRequest();

    xhr.upload.addEventListener("progress", uploadProgress, false);

    xhr.addEventListener("load", uploadComplete, false);

    xhr.addEventListener("error", uploadFailed, false);

    xhr.addEventListener("abort", uploadCanceled, false);

    xhr.open("POST", "savetofile.php");

    xhr.send(fd);

  }
函数上传文件(){
var fd=新FormData();
var count=document.getElementById('fileToUpload').files.length;
对于(var索引=0;索引<计数;索引++)
{
var file=document.getElementById('fileToUpload').files[index];
fd.append('myFile',file);
}
var xhr=new XMLHttpRequest();
addEventListener(“进度”,uploadProgress,false);
xhr.addEventListener(“加载”,上载完成,错误);
xhr.addEventListener(“错误”,上载失败,错误);
xhr.addEventListener(“中止”,上载已取消,错误);
open(“POST”、“savetofile.php”);
xhr.send(fd);
}
在php文件中:

<?php
if (isset($_FILES['myFile'])) {

   // $text = contents of the textbox that has been sent from javascript

    move_uploaded_file($_FILES['myFile']['tmp_name'], "daa_coke/images/" . $_FILES['myFile']['name']);
   $xml = simplexml_load_file('daa_coke/newcoke.xml');
$employee = $xml->addChild('flight');
$employee->addChild('to', 'dsd');
$employee->addChild('from', 'Gary');
$employee->addChild('imagepath', $_FILES['myFile']['name']);
$employee->addChild('templateStyle', 'template1');
$employee->addChild('time', '13:37');
$employee->addChild('date', '24/12/16');

file_put_contents('daa_coke/newcoke.xml', $xml->asXML());


}
?>
addChild('flight');
$employee->addChild('to','dsd');
$employee->addChild('from','Gary');
$employee->addChild('imagepath',$_FILES['myFile']['name']);
$employee->addChild('templateStyle','template1');
$employee->addChild('time','13:37');
$employee->addChild('date','24/12/16');
文件内容('daa_coke/newcoke.xml',$xml->asXML());
}
?>

我只希望能够传递文本框的内容,以便将其放入$test变量。

文件名应是传递给
的第三个参数。append()

e、 g


请参见

fd.append('textBoxName',textBoxValue)工作

只需执行另一个append
fd.append('textBoxName',textBoxValue)
我已经试过了,但没有添加任何内容
formData.append(name, value, filename);
fd.append("myFile", file, this.querySelector("input[type=text]").value);