1. Go to this page and download the library: Download czim/laravel-paperclip library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
class Comment extends Model implements \Czim\Paperclip\Contracts\AttachableInterface
{
use \Czim\Paperclip\Model\PaperclipTrait;
public function __construct(array $attributes = [])
{
$this->hasAttachedFile('image', [
'variants' => [
'medium' => [
'auto-orient' => [],
'resize' => ['dimensions' => '300x300'],
],
'thumb' => '100x100',
],
'attributes' => [
'variants' => true,
],
]);
parent::__construct($attributes);
}
}
use \Czim\Paperclip\Config\Variant;
use \Czim\Paperclip\Config\Steps\AutoOrientStep;
use \Czim\Paperclip\Config\Steps\ResizeStep;
// ...
$this->hasAttachedFile('image', [
'variants' => [
Variant::make('medium')->steps([
AutoOrientStep::make(),
ResizeStep::make()->width(300)->height(150)->crop(),
]),
Variant::make('medium')->steps(ResizeStep::make()->square(100)),
],
]);
public function someControllerAction(Request $request) {
$model = ModelWithAttachment::first();
// You can set any UploadedFile instance from a request on
// the attribute you configured a Paperclipped model for.
$model->attachmentname = $request->file('uploaded');
// Saving the model will then process and store the attachment.
$model->save();
// ...
}
// You can use the built in SplFileInfo class:
$model->attachmentname = new \SplFileInfo('local/path/to.file');
// Or a file-handler class that allows you to override values:
$file = new \Czim\FileHandling\Storage\File\SplFileInfoStorableFile();
$file->setData(new \SplFileInfo('local/path/to.file'));
// Optional, will be derived from the file normally
$file->setMimeType('image/jpeg');
// Optional, the file's current name will be used normally
$file->setName('original-file-name.jpg');
$model->attachmentname = $file;
// Or even a class representing raw content
$raw = new \Czim\FileHandling\Storage\File\RawStorableFile();
$raw->setData('... string with raw content of file ...');
$raw->setMimeType('image/jpeg');
$raw->setName('original-file-name.jpg');
$model->attachmentname = $raw;
// You can set a special string value, the deletion hash, like so:
$model->attachmentname = \Czim\Paperclip\Attachment\Attachment::NULL_ATTACHMENT;
// In version 2.5.5 and up, this value is configurable and available in the config:
$model->attachmentname = config('paperclip.delete-hash');
// You can also directly clear the attachment by flagging it for deletion:
$model->attachmentname->setToBeDeleted();
// After any of these approaches, saving the model will make the deletion take effect.
$model->save();