Fix file download issue - add attachment disposition type to Content-Disposition headers

Files were downloading with filename "view" instead of the actual filename because
the Content-Disposition header was missing the disposition type (attachment/inline).
Changed from `filename="..."` to `attachment; filename="..."` in all 4 locations
in the /view endpoint to ensure proper filename handling by browsers.

This fixes downloads for videos, audio, and other file types served through the
/view endpoint.
This commit is contained in:
Claude 2025-11-20 00:40:19 +00:00
parent dfca61be7f
commit 149506beea
No known key found for this signature in database

View File

@ -486,7 +486,7 @@ class PromptServer():
buffer.seek(0)
return web.Response(body=buffer.read(), content_type=f'image/{image_format}',
headers={"Content-Disposition": f"filename=\"{filename}\""})
headers={"Content-Disposition": f"attachment; filename=\"{filename}\""})
if 'channel' not in request.rel_url.query:
channel = 'rgba'
@ -506,7 +506,7 @@ class PromptServer():
buffer.seek(0)
return web.Response(body=buffer.read(), content_type='image/png',
headers={"Content-Disposition": f"filename=\"{filename}\""})
headers={"Content-Disposition": f"attachment; filename=\"{filename}\""})
elif channel == 'a':
with Image.open(file) as img:
@ -523,7 +523,7 @@ class PromptServer():
alpha_buffer.seek(0)
return web.Response(body=alpha_buffer.read(), content_type='image/png',
headers={"Content-Disposition": f"filename=\"{filename}\""})
headers={"Content-Disposition": f"attachment; filename=\"{filename}\""})
else:
# Get content type from mimetype, defaulting to 'application/octet-stream'
content_type = mimetypes.guess_type(filename)[0] or 'application/octet-stream'
@ -535,7 +535,7 @@ class PromptServer():
return web.FileResponse(
file,
headers={
"Content-Disposition": f"filename=\"{filename}\"",
"Content-Disposition": f"attachment; filename=\"{filename}\"",
"Content-Type": content_type
}
)