* @property-read int $fileSize
* @property-read string $fileHash
* @property-read string $fileExtension
+ * @property-read string $secret
* @property-read string $typeName
* @property-read string $mimeType
* @property-read int|null $width
public function getSourceFilename(): string
{
return \sprintf(
- '%d-%s.%s',
+ '%d-%s-%s.%s',
$this->fileID,
+ $this->secret,
$this->fileHash,
$this->fileExtension,
);
$folderB = \substr($this->fileHash, 2, 2);
return \sprintf(
- \WCF_DIR . '_data/private/fileUpload/%s/%s/',
+ \WCF_DIR . '_data/%s/files/%s/%s/',
+ $this->fileExtension === 'bin' ? 'private' : 'public',
$folderA,
$folderB,
);
'fileSize' => $fileTemporary->fileSize,
'fileHash' => $fileTemporary->fileHash,
'fileExtension' => File::getSafeFileExtension($mimeType, $fileTemporary->filename),
+ 'secret' => \bin2hex(\random_bytes(10)),
'typeName' => $fileTemporary->typeName,
'mimeType' => $mimeType,
'width' => $width,
fileSize BIGINT NOT NULL,
fileHash CHAR(64) NOT NULL,
fileExtension VARCHAR(10) NOT NULL,
+ secret CHAR(20) NOT NULL,
typeName VARCHAR(255) NOT NULL,
mimeType VARCHAR(255) NOT NULL,
width INT,