2016-05-20 09:25:10 -07:00
|
|
|
# `File` Object
|
2014-10-25 14:58:32 +08:00
|
|
|
|
2016-04-21 15:39:12 -07:00
|
|
|
> Use the HTML5 `File` API to work natively with files on the filesystem.
|
2016-04-21 15:35:29 -07:00
|
|
|
|
2015-08-26 16:41:25 -07:00
|
|
|
The DOM's File interface provides abstraction around native files in order to
|
2015-08-25 05:48:24 -07:00
|
|
|
let users work on native files directly with the HTML5 file API. Electron has
|
2015-08-26 16:41:25 -07:00
|
|
|
added a `path` attribute to the `File` interface which exposes the file's real
|
|
|
|
path on filesystem.
|
2014-10-25 14:58:32 +08:00
|
|
|
|
2015-08-25 05:48:24 -07:00
|
|
|
Example on getting a real path from a dragged-onto-the-app file:
|
2014-10-25 14:58:32 +08:00
|
|
|
|
|
|
|
```html
|
|
|
|
<div id="holder">
|
|
|
|
Drag your file here
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<script>
|
2016-05-04 11:59:02 -06:00
|
|
|
const holder = document.getElementById('holder');
|
|
|
|
holder.ondragover = () => {
|
2014-10-25 14:58:32 +08:00
|
|
|
return false;
|
|
|
|
};
|
2016-05-04 11:59:02 -06:00
|
|
|
holder.ondragleave = holder.ondragend = () => {
|
2014-10-25 14:58:32 +08:00
|
|
|
return false;
|
|
|
|
};
|
2016-05-04 11:59:02 -06:00
|
|
|
holder.ondrop = (e) => {
|
2014-10-25 14:58:32 +08:00
|
|
|
e.preventDefault();
|
2016-07-19 23:51:58 -05:00
|
|
|
for (let f of e.dataTransfer.files) {
|
|
|
|
console.log('File(s) you dragged here: ', f.path);
|
|
|
|
}
|
2014-10-25 14:58:32 +08:00
|
|
|
return false;
|
|
|
|
};
|
|
|
|
</script>
|
|
|
|
```
|