I try to append a File object to a FormData object in JavaScript, but it doesn't work and only a empty object is added. If I try to append a key/value it works fine. 
There is no error / warning message in the console. I activated all channels.
I try out examples from the web and from the MDN. But nothing helps. I don't understand why? Is file access blocked by security reasons?
I'm use Firefox 64.0 or Chrome 71.0. Currently the example doesn't contain any client-server communication. But I tried it in two ways: as a local file and a page loaded from a web server.
The background of my question is, I would like to upload files with XmlHttpRequest in a script to a server.
Console
File(234321) {name: "refresh2.gpx", lastModified: 1503041677210,
              lastModifiedDate: Fri Aug 18 2017 09:34:37 GMT+0200 (...),
              webkitRelativePath: "", size: 234321, …}
{"key":"value","userfile":{}}
HTML body
<body>
<form id="file-form" action="handler.php" method="POST">
  <input type="file" id="file-select" />
  <button type="submit" id="upload-button">Upload</button>
</form>
</body>
Script
<script>
document.getElementById('file-form').onsubmit = function(event) {
    event.preventDefault();
    // Get the selected files from the input.
    var files = document.getElementById('file-select').files;
    // Create a new FormData object.
    var formData = new FormData();
    console.log(files[0]);
    formData.append("key", "value");
    formData.append("userfile", files[0]);
    // dump formData object
    var object = {};
    formData.forEach(function(value, key){
        object[key] = value;
    });
    var json = JSON.stringify(object);
    console.log(json);
    // xmlhttprequest part comes here....
}
</script>
</html>
Thank you for your help
CachingFoX
 
    