feat : barre de partage articles + déduplication images uploadées (v1.6.20)
- post_view.php : barre de partage (mail, X, LinkedIn, Mastodon, copier, Web Share) sur articles publiés (#47) - share.js : logique clipboard + navigator.share sans script tiers, compatible CSP (#47) - addFile() : hardlink vers fichier identique si même hash16-size.ext dans un autre article (#35) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+10
-1
@@ -1197,7 +1197,16 @@ class ArticleManager
|
||||
$size = filesize($uploadedFile['tmp_name']);
|
||||
$name = "{$hash}-{$size}.{$ext}";
|
||||
$dest = $dir . '/' . $name;
|
||||
if (!rename($uploadedFile['tmp_name'], $dest) && !move_uploaded_file($uploadedFile['tmp_name'], $dest)) {
|
||||
// Déduplication : si ce fichier identique existe déjà dans un autre article, crée un hardlink
|
||||
if (!file_exists($dest)) {
|
||||
$existing = glob($this->dataDir . '/*/files/' . $name);
|
||||
if (!empty($existing) && is_file($existing[0])) {
|
||||
link($existing[0], $dest) || copy($existing[0], $dest);
|
||||
@unlink($uploadedFile['tmp_name']);
|
||||
return $name;
|
||||
}
|
||||
}
|
||||
if (!file_exists($dest) && !rename($uploadedFile['tmp_name'], $dest) && !move_uploaded_file($uploadedFile['tmp_name'], $dest)) {
|
||||
return null;
|
||||
}
|
||||
return $name;
|
||||
|
||||
Reference in New Issue
Block a user