Showing
2 changed files
with
4 additions
and
4 deletions
| @@ -122,9 +122,7 @@ const DetailModal: React.FC<DetailModalProps> = ({ image, onClose, onEdit, onGen | @@ -122,9 +122,7 @@ const DetailModal: React.FC<DetailModalProps> = ({ image, onClose, onEdit, onGen | ||
| 122 | )} | 122 | )} |
| 123 | 123 | ||
| 124 | <a | 124 | <a |
| 125 | - href={image.url} | ||
| 126 | - target="_blank" | ||
| 127 | - rel="noopener noreferrer" | 125 | + href={`${image.url}?download=true`} |
| 128 | download={`z-${isVideo ? 'video' : 'image'}-${image.id}.${isVideo ? 'mp4' : 'png'}`} | 126 | download={`z-${isVideo ? 'video' : 'image'}-${image.id}.${isVideo ? 'mp4' : 'png'}`} |
| 129 | className="flex items-center justify-center w-full py-3 bg-black dark:bg-white text-white dark:text-black rounded-xl font-medium hover:opacity-90 transition-opacity gap-2" | 127 | className="flex items-center justify-center w-full py-3 bg-black dark:bg-white text-white dark:text-black rounded-xl font-medium hover:opacity-90 transition-opacity gap-2" |
| 130 | > | 128 | > |
| @@ -86,7 +86,9 @@ const ImageCard: React.FC<ImageCardProps> = ({ image, onClick, onLike, currentUs | @@ -86,7 +86,9 @@ const ImageCard: React.FC<ImageCardProps> = ({ image, onClick, onLike, currentUs | ||
| 86 | onClick={(e) => { | 86 | onClick={(e) => { |
| 87 | e.stopPropagation(); | 87 | e.stopPropagation(); |
| 88 | const link = document.createElement('a'); | 88 | const link = document.createElement('a'); |
| 89 | - link.href = image.url; | 89 | + // Append ?download=true to force server to send attachment header |
| 90 | + link.href = `${image.url}?download=true`; | ||
| 91 | + // Filename is optional here as server header takes precedence, but good for fallback | ||
| 90 | link.download = `z-${isVideo ? 'video' : 'image'}-${image.id}.${isVideo ? 'mp4' : 'png'}`; | 92 | link.download = `z-${isVideo ? 'video' : 'image'}-${image.id}.${isVideo ? 'mp4' : 'png'}`; |
| 91 | document.body.appendChild(link); | 93 | document.body.appendChild(link); |
| 92 | link.click(); | 94 | link.click(); |
-
Please register or login to post a comment