use BookStack\Exceptions\FileUploadException;
use Exception;
+use Illuminate\Support\Str;
use Symfony\Component\HttpFoundation\File\UploadedFile;
class AttachmentService extends UploadService
*/
protected function getStorage()
{
- $storageType = config('filesystems.default');
+ $storageType = config('filesystems.attachments');
// Override default location if set to local public to ensure not visible.
if ($storageType === 'local') {
public function saveNewUpload(UploadedFile $uploadedFile, $page_id)
{
$attachmentName = $uploadedFile->getClientOriginalName();
- $attachmentPath = $this->putFileInStorage($attachmentName, $uploadedFile);
+ $attachmentPath = $this->putFileInStorage($uploadedFile);
$largestExistingOrder = Attachment::where('uploaded_to', '=', $page_id)->max('order');
$attachment = Attachment::forceCreate([
}
$attachmentName = $uploadedFile->getClientOriginalName();
- $attachmentPath = $this->putFileInStorage($attachmentName, $uploadedFile);
+ $attachmentPath = $this->putFileInStorage($uploadedFile);
$attachment->name = $attachmentName;
$attachment->path = $attachmentPath;
/**
* Store a file in storage with the given filename
- * @param $attachmentName
* @param UploadedFile $uploadedFile
* @return string
* @throws FileUploadException
*/
- protected function putFileInStorage($attachmentName, UploadedFile $uploadedFile)
+ protected function putFileInStorage(UploadedFile $uploadedFile)
{
$attachmentData = file_get_contents($uploadedFile->getRealPath());
$storage = $this->getStorage();
$basePath = 'uploads/files/' . Date('Y-m-M') . '/';
- $uploadFileName = $attachmentName;
+ $uploadFileName = Str::random(16) . '.' . $uploadedFile->getClientOriginalExtension();
while ($storage->exists($basePath . $uploadFileName)) {
- $uploadFileName = str_random(3) . $uploadFileName;
+ $uploadFileName = Str::random(3) . $uploadFileName;
}
$attachmentPath = $basePath . $uploadFileName;