Re: [w3c/FileAPI] Readonly attributes without setters? (#126)

@andrew-aladev  



> It is not so complex. People wants to create a file, fix its name, extension, check mime type, manipulate its blob a bit using their own infrastructure with mutable instances or with other immutable objects. 

That is already possible.

> Nobody is using File class in the way it was designed. 

That is not accurate. Who is "Nobody"? How did you determine that?

> Noone wants to extend File

To do what?

> It is a complete interface failure.

Disagree.

> People will just change internal wrapper params and creates File only when they need it.

That is already possible. Users can create a `FormData` object as a "template" and use `fetch()` or `XMLHttpRequest()` to read/write the contents of one or more files (see Get HTTP Body of Form in JavaScript https://stackoverflow.com/q/40111982)
```
var form = document.querySelector("form");
form.onsubmit = (e) => {
  e.preventDefault();
  var formData = new FormData();
  var input = e.target.querySelector("input");
  formData.append("file", input.files[0], input.files[0].name);

  var response = new Response(formData);
  var stream = response.body;
  var reader = stream.getReader();
  var decoder = new TextDecoder();
  reader.read()
    .then(function processData(result) {
      if (result.done) {
        console.log("stream done");
        return;
      }
      var data = decoder.decode(result.value);
      console.log(data);

      return reader.read().then(processData);
    })
    .catch(function(err) {
      console.log("catch stream cancellation:", err);
    });

  reader.closed.then(function() {
    console.log("stream closed");
  });
}
```

and/or write a form data including one or more "files" (that can be modified at any time) from scratch (see https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html; https://github.com/whatwg/fetch/issues/392; https://github.com/whatwg/html/issues/3040; How to manually create multipart/form-data https://stackoverflow.com/q/47080869).

> It looks like FormData is the only class on this planet that uses File in the way it was designed.

Not sure what you mean? `FormData` is not the only API shipped with the browser that can create a "file". It is only relatively recently that users could even create a `File` object (or instance). In which specific manner to you want to "extend" `File`? Again, are the use cases?


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/FileAPI/issues/126#issuecomment-481053772

Received on Tuesday, 9 April 2019 00:17:16 UTC