| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- <?php
- namespace App;
- use Illuminate\Database\Eloquent\Model;
- use zgldh\UploadManager\UploadManager;
- /**
- * Class Upload
- * @property string $name
- * @property string $description
- * @property string $disk
- * @property string $path
- * @property string $size
- * @property string $user_id
- * @package App
- */
- class Upload extends Model
- {
- protected $table = 'uploads';
- public function user()
- {
- return $this->belongsTo('App\User', 'user_id', 'id');
- }
-
- public function uploadable()
- {
- return $this->morphTo();
- }
- public function getUrlAttribute()
- {
- $manager = UploadManager::getInstance();
- $url = $manager->getUploadUrl($this->disk, $this->path);
- return $url;
- }
- public function deleteFile($autoSave = true)
- {
- if ($this->path) {
- $disk = \Storage::disk($this->disk);
- if ($disk->exists($this->path)) {
- $disk->delete($this->path);
- $this->path = '';
- if($autoSave)
- {
- $this->save();
- }
- }
- }
- }
- public function isInDisk($diskName)
- {
- return $this->disk == $diskName ? true : false;
- }
- public function moveToDisk($newDiskName)
- {
- if ($newDiskName == $this->disk) {
- return true;
- }
- $currentDisk = \Storage::disk($this->disk);
- $content = $currentDisk->get($this->path);
- $newDisk = \Storage::disk($newDiskName);
- $newDisk->put($this->path, $content);
- if ($newDisk->exists($this->path)) {
- $this->disk = $newDiskName;
- $this->save();
- $currentDisk->delete($this->path);
- return true;
- }
- return false;
- }
- }
|