![Create React App Officially Deprecated Amid React 19 Compatibility Issues](https://cdn.sanity.io/images/cgdhsj6q/production/04fa08cf844d798abc0e1a6391c129363cc7e2ab-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Create React App Officially Deprecated Amid React 19 Compatibility Issues
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
capacitor-file-selector
Advanced tools
For detailed tutorial on how to enable dark mode using this plugin visit:
https://medium.com/@hinddeep.purohit007/picking-files-in-capacitor-apps-a82c67384496
Demo Application: https://github.com/hinddeep/demo-capacitor-file-picker
Platforms Supported: Android, iOS, and Web/PWA
This plugin can be used to conditionally select files form Android/iOS devices and the web.
npm install capacitor-file-selector
Open MainActivity.java and add the following code inside this.init()
add(FileSelector.class);
Adding the above mentioned line will add the following import statement:
import com.bkon.capacitor.fileselector.FileSelector;
If you encounter errors, please add both the lines manually to MainActivity.java
To view all the supported Extensions please visit:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
To view all the supported extensions please visit:
https://developer.apple.com/library/archive/documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html
import { Plugins } from '@capacitor/core';
const { FileSelector } = Plugins;
import ‘capacitor-file-selector’ // Comment out this line when building android/iOS app<br/>
SPECIAL NOTE: When building the app for Android/iOS please do not forget to comment out “import ‘capacitor-file-selector’ ”. The import statement is used to register the web implementation of the plugin. If you register the web implementation of the plugin on native android/iOS app, the code that gets invoked is the web implementation instead of the native Android/iOS implementation.
Supported extensions:- All extensions are supported. Please refer https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
Supported Broad Categories: “images”, “videos” and “audios”
To allow the selection of all file types use “*”
If you wish to allow the user to select more than file, set the multiple_selection variable to true, else set it to false. Use the ext array to list out all the permitted extensions / broader file categories. The user will be able to select only the files with extensions / category outlined in this ext array.
The ext array IS case sensitive. All characters entered must be in lowercase. If not use Typescript’s map function to convert them into lowercase.
ext = ext.map(v => v.toLowerCase());
Data returned by the file picker contains:
2 and 3 can be combined to rebuild the original file name. The following function illustrates how to upload files fetched from Android/iOS/Web to any server.
async select() {
let multiple_selection = true
//let ext = [".jpg",".png",".pdf",".jpeg"] // list of extensions
let ext = ["MP3", "ImaGes"] // combination of extensions or category
//let ext = ["videos", "audios", "images"] // list of all category
//let ext = ["*"] // Allow any file type
ext = ext.map(v => v.toLowerCase());
let formData = new FormData();
let selectedFile = await FileSelector.fileSelector({
multiple_selection: multiple_selection,
ext: ext
})
if(this.platform.is("android"))
{
let paths = JSON.parse(selectedFile.paths)
let original_names = JSON.parse(selectedFile.original_names)
let extensions = JSON.parse(selectedFile.extensions)
for (let index = 0; index < paths.length; index++) {
const file = await fetch(paths[index]).then((r) => r.blob());
formData.append(
"myfile[]",
file,
original_names[index] + extensions[index]
);
}
}
else if(this.platform.is("ios"))
{
for (let index = 0; index < selectedFile.paths.length; index++) {
const file = await fetch(selectedFile.paths[index]).then((r) => r.blob());
formData.append(
"myfile[]",
file,
selectedFile.original_names[index] + selectedFile.extensions[index]
);
}
}
else
{
FileSelector.addListener("onFilesSelected", (data:FileList) => {
for(var i = 0; i < data.length; i++)
{
formData.append(
"myfile[]",
data.item(i),
data.item(i).name + data.item(i).type
);
}
});
}
}
FAQs
Select File from the Native Filesystem
The npm package capacitor-file-selector receives a total of 8 weekly downloads. As such, capacitor-file-selector popularity was classified as not popular.
We found that capacitor-file-selector demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.