Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Data Uri Laravel Package

1tomany/data-uri

Parse data URIs, base64 strings, plain text, URLs, or local files into a temporary file via an immutable value object. Auto-detect or override MIME type, set an optional display name, and the temp file is deleted automatically on destruct.

View on GitHub
Deep Wiki
Context7

Data URI Parser for PHP

This simple library allows you to easily convert a wide variety of data into a temporary file represented by a lightweight immutable value object.

Installation

composer require 1tomany/data-uri

API Overview

The three methods exposed by this library are:

  • OneToMany\DataUri\DataDecoder::decode()
  • OneToMany\DataUri\DataDecoder::decodeBase64()
  • OneToMany\DataUri\DataDecoder::decodeText()

Each method returns an object that implements the OneToMany\DataUri\Contract\Record\DataUriInterface interface. In this implementation, the value object will automatically delete the file it represents when it is destructed or garbage collected.

The DataDecoder::decode() method is the most versatile as it allows for a wide variety of inputs:

  • A data URI defined in RFC2397
  • A public HTTP or HTTPS URL
  • A readable file

DataDecoder::decode()

The DataDecoder::decode() method has the following parameters:

  • mixed $data The data to decode
  • ?string $name The display name for the temporary file. This is useful for handling file uploads where the original filename is preferred over the random name PHP assigns. A randomly generated name will be used if this is empty and a name cannot be resolved. This is null by default.
  • string|Type|null $type The MIME type of the temporary file. If empty or null (the default value), the MIME type (or format) will be determined using the mime_content_type() function. This is handy when the file can be multiple types. For example, mime_content_type() may return text/plain for Markdown files, which is correct, however, you may wish to use the more specific MIME type text/markdown.

Inside DataDecoder::decode()

Under the hood, DataDecoder::decode() uses the fopen() and stream_get_contents() functions, which means the data passed to it can be any stream that PHP supports.

DataDecoder::decodeBase64()

This method is to be used when the data is known to be base64 encoded but NOT encoded as a data URI.

The DataDecoder::decodeBase64() method has the following parameters:

  • string $data The base64 encoded string
  • string $format The format of the data represented as a MIME type
  • ?string $name See DataDecoder::decode()

DataDecoder::decodeText()

This method is to be used when the data is known to be plaintext.

The DataDecoder::decodeText() method has the following arguments:

  • string $text The plaintext string
  • ?string $name See DataDecoder::decode(). The extension .txt will be appended to the $name if the value provided does not already use it.

Examples

See the decode.php file for examples on how to use the DataDecoder::decode() method.

Credits

License

The MIT License

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
anousss007/vigilance
supportpal/eloquent-model
ardenexal/fhir-models
laravel-at/laravel-image-sanitize
romalytar/yammi-audit-log-laravel
ardenexal/fhir-validation
arshaviras/weather-widget
laravel-chronicle/core
sunchayn/nimbus
daikazu/eloquent-salesforce-objects
unseen-codes/chat
romalytar/yammi-jobs-monitoring-laravel
kisame76/filament-db-table-state
nqxcode/laravel-lucene-search
dpfx/laravel-livewire-wizards
workos/workos-php-laravel
sofa/laravel-global-scope
nawasara/auth-primitives
adhocrat-io/arkhe-main
make-dev/orca-harpoon