Tiny Drive Pick API
The tinydrive.pick
method allows users to pick files from Tiny Drive and get the metadata of those files returned in a promise. This metadata can be used to insert or retrieve the file or files if needed.
File Picker Result Format
The tinydrive.pick
method will return a promise with object that has a files
property. This files
property is an array of files with the following properties.
{
"files": [
{
"name": "myphoto.jpg",
"url": "https://drive.tiny.cloud/1/h0ed4hzbe69rfcrnj0uwvwi73e8y5m70jlolaalzkssog63b/48bda29d-ed1f-488f-adf7-b597dd3a8791",
"size": 1180390,
"type": "image",
"mdate": "2018-06-13T16:49:10Z"
}
]
}
- name
-
The name of the selected file for example:
my.jpg
. - size
-
The size in bytes of the selected file.
- url
-
The URL for the selected file would be in the following format:
https://drive.tiny.cloud/1/<your api key>/<file uuid>
- mdate
-
The modification date for the file in ISO 8601 format for example:
2019-02-24T15:00:00Z
Interactive example: Using tinydrive.pick
-
TinyMCE
-
HTML
-
JS
<textarea id="drive-pick-example">
This demo shows you how to call tinydrive from within the tinymce api.
</textarea>
tinymce.init({
selector: 'textarea#drive-pick-example',
height: 200,
menubar: false,
plugins: 'tinydrive link image media',
toolbar: 'custom | insertfile | link image media',
tinydrive_token_provider: 'URL_TO_YOUR_TOKEN_PROVIDER',
setup: (editor) => {
editor.ui.registry.addButton('custom', {
text: 'Custom pick',
onAction: () => {
editor.plugins.tinydrive.pick({
}).then((result) => {
result.files.forEach((file) => {
const link = editor.dom.createHTML('a', { href: file.url }, editor.dom.encode(file.name));
editor.insertContent(link);
});
});
}
});
}
});
Options
filetypes
This option restricts the files displayed based on the following file type categories:
document
-
doc
,xls
,ppt
,pps
,docx
,xlsx
,pptx
,pdf
,rtf
,txt
,key
,pages
,numbers
audio
-
wav
,wave
,mp3
,ogg
,oga
,ogx
,ogm
,spx
,opus
video
-
mp4
,m4v
,ogv
,webm
,mov
image
-
gif
,jpeg
,jpg
,jpe
,jfi
,jif
,jfif
,pjpeg
,pjp
,png
,tif
,tiff
,bmp
,webp
,avif
,apng
archive
-
zip
For example: If the application is using Tiny Drive to insert images, then set ['image']
in the file types array.
Type: Array
Interactive example: Using filetypes
to restrict Tiny Drive to image formats
-
TinyMCE
-
HTML
-
JS
<textarea id="drive-pick-images-example">
This demo shows you how to call tinydrive from within the tinymce api.
</textarea>
tinymce.init({
selector: 'textarea#drive-pick-images-example',
height: 200,
menubar: false,
plugins: 'tinydrive link image media',
toolbar: 'custom | insertfile | link image media',
tinydrive_token_provider: 'URL_TO_YOUR_TOKEN_PROVIDER',
setup: (editor) => {
editor.ui.registry.addButton('custom', {
text: 'Custom pick image',
onAction: () => {
editor.plugins.tinydrive.pick({
filetypes: ['image']
}).then((result) => {
result.files.forEach((file) => {
const img = editor.dom.createHTML('img', { src: file.url });
editor.insertContent(img);
});
});
}
});
}
});
max_image_dimension
This option constrains the width and height of uploaded images. When specified, any images with a greater width or height than the specified amount would be proportionally resized down to the specified maximum dimension.
Type: Number
Example: using max_image_dimension
with the tinydrive.browse API
tinymce.init({
selector: 'textarea',
plugins: 'tinydrive image',
toolbar: 'custombrowse',
tinydrive_token_provider: 'URL_TO_YOUR_TOKEN_PROVIDER',
setup: (editor) => {
editor.ui.registry.addButton('custombrowse', {
text: 'Custom browse',
onAction: () => {
editor.plugins.tinydrive.browse({
max_image_dimension: 1024
}).then(() => {
console.log('Tiny Drive dialog closed.');
});
}
});
}
});