Topics
All
MacOS
(Only)
Windows
(Only)
Linux
(Only, Not)
iOS
(Only, Not)
Components
Crossplatform Mac & Win
Server
Client
Old
Deprecated
Guides
Examples
Videos
New in version:
11.0
11.1
11.2
11.3
11.4
11.5
12.0
12.1
12.2
12.3
Statistic
FMM
Blog
Container.ReadFile
Reads a file with the given path.
Component | Version | macOS | Windows | Linux | Server | iOS SDK | License |
Container | 6.4 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | Free |
Parameters
Parameter | Description | Example | Flags |
---|---|---|---|
FilePath | The native file path. Something like "/Users/cs/desktop/test.txt" on Mac and "C:\Programs\Data\test.txt" on Windows. Files without path end in the root directory on Mac. | "test.txt" | |
mode | If missing or "auto", the plugin will try to detect type by file name extension. If filter is "container", the result is returned as a container with a FILE stream inside. The type can be specific here like PDF, JPEG, TIFF, GIF, BMP or PSD to return as image container. Or "compressed" to return a compressed container. |
"Auto" | Optional |
filename | If result is container, this defines the file name to use. | "test.txt" | Optional |
Result
Returns container value or error.
Description
Reads a file with the given path.Reads the data in the file and returns as container.
See also Text.ReadTextFile for reading text files with specific encoding.
For reading simple text files, please use Text.ReadTextFile.
See also Files.ReadFile, Files.ReadJPEG, Files.ReadPDF, Files.ReadPNG, Text.ReadTextFile and RichText.ReadFile.
This function is optimized for FM 14 and newer to stream file content when using auto mode. This allows to import up to 4 GB of data in small chunks.
FileMaker may decide to create a preview when the plugin passes back the data to FileMaker. If FileMaker on macOS creates a preview for a PDF may take some time and leak memory.
This function reads the file data into memory and does not define how FileMaker stores it. This is defined by which field it is later assigned to. And the field options define whether this container value is stored internally or externally.
This function requires a native path. Use Path.FileMakerPathToNativePath to convert a FileMaker path to a native path if required. If you like to have the user choose the path, you can use FileDialog functions.
For Server be aware that server has limited permissions and may not be able to access all files on a computer.
Examples
Read image file:
MBS( "Container.ReadFile"; "/Users/cs/Pictures/test.jpg"; "auto")
Read image file with error checking:
# get native path
Set Variable [ $path ; Value: "/Users/cs/Pictures/mond.jpg" ]
#
# read file
Set Variable [ $content ; Value: MBS( "Container.ReadFile"; $path) ]
#
# check for error
If [ MBS("IsError") = 0 ]
Set Field [ Contacts::Photo Container ; $content ]
Else
Show Custom Dialog [ "Failed to read file." ; $content ]
End If
Save as PDF and import it to a field:
# go to layout and record before
# build a path for FileMaker
Set Variable [ $name ; Value: "test.pdf" ]
Set Variable [ $path ; Value: Get(DocumentsPath) & $name ]
Set Variable [ $NativePath ; Value: MBS( "Path.FileMakerPathToNativePath"; $path ) ]
#
# Let FileMaker save records
Save Records as PDF [ With dialog: Off ; “$path” ; Records being browsed ; Create folders: Off ]
Set Variable [ $error ; Value: Get(LastError) ]
If [ $error = 0 ]
# Read result PDF
Set Variable [ $PDF ; Value: MBS( "Container.ReadFile"; $NativePath) ]
If [ MBS("ISError") = 0 ]
# Put in container
Set Field [ Contacts::PDF File ; $PDF ]
Else
Show Custom Dialog [ "Failed to read PDF document" ; $PDF ]
End If
Else
Show Custom Dialog [ "Failed to create PDF document" ; Get(LastExternalErrorDetail) ]
End If
Import file on Server on Windows:
MBS( "Container.ReadFile"; "C:\Programs\FileMaker Server\Data\Documents\test.pdf")
See also
- Container.ReadImage
- Container.WriteFile
- ImageCapture.SetParameter
- IsError
- QLPreviewPanel.SavedFiles
- RichText.ReadFile
- WIA.Image
- WIA.ImageCount
- WIA.ImageDialog
- WinPhotoAcquire.Files
Release notes
- Version 12.0
- Fixed Container.ReadFile to read empty files.
- Version 11.3
- Fixed a memory leak in Container.ReadFile function when used on server and FileMaker creates a PDF preview.
Example Databases
- DynaPDF/Batch Preview
- DynaPDF/PDF Library
- iOS/Markup
- iOS/SharingPanel
- Mac and iOS/Contacts/Contacts
- Mac and iOS/PDFKit/PDFKit Print Documents
- Mac only/ImageCapture/ImageCapture
- SQL in FileMaker/ImageGallery
- Win Only/PhotoAcquire
- Win Only/WIA Scan
Blog Entries
- MBS FileMaker Plugin, version 11.6pr1
- MBS FileMaker Plugin, version 11.3pr1
- Combined Components with MBS FileMaker Plugin
- Save PDF to container in FileMaker
- Read HEIC or HEIF image files in FileMaker
- FileMaker 18 File Script Steps vs. BinaryFile functions
- ImageCapture functions for Mac OS X
- MBS FileMaker Plugin, version 6.4pr6
FileMaker Magazin
Created 6th September 2016, last changed 15th July 2021
Container.ReadArchive - Container.ReadImage
Feedback: Report problem or ask question.
