更新文件上传功能,支持返回下载链接

This commit is contained in:
公司git 2026-07-16 11:47:52 +08:00
parent bc05afbcb0
commit 6bd8a67103
3 changed files with 9 additions and 4 deletions

View File

@ -57,9 +57,9 @@ def get_config():
def upload(): def upload():
try: try:
files = request.files.getlist("images") files = request.files.getlist("images")
img_urls = handle_file_uploads(files) img_urls, download_urls = handle_file_uploads(files)
system_logger.info(f"用户上传文件: {len(files)}", user_id=session.get("user_id")) system_logger.info(f"用户上传文件: {len(files)}", user_id=session.get("user_id"))
return jsonify({"urls": img_urls}) return jsonify({"urls": img_urls, "download_urls": download_urls})
except Exception as e: except Exception as e:
return jsonify({"error": str(e)}), 500 return jsonify({"error": str(e)}), 500

View File

@ -11,6 +11,7 @@ from utils import get_proxied_url
def handle_file_uploads(files): def handle_file_uploads(files):
"""处理文件上传到 MinIO""" """处理文件上传到 MinIO"""
img_urls = [] img_urls = []
download_urls = []
for f in files: for f in files:
ext = os.path.splitext(f.filename)[1] ext = os.path.splitext(f.filename)[1]
filename = f"{uuid.uuid4().hex}{ext}" filename = f"{uuid.uuid4().hex}{ext}"
@ -19,7 +20,11 @@ def handle_file_uploads(files):
ExtraArgs={"ContentType": f.content_type} ExtraArgs={"ContentType": f.content_type}
) )
img_urls.append(f"{Config.MINIO['public_url']}{quote(filename)}") img_urls.append(f"{Config.MINIO['public_url']}{quote(filename)}")
return img_urls endpoint = Config.MINIO["endpoint"].rstrip("/")
bucket = quote(Config.MINIO["bucket"], safe="")
object_key = quote(filename, safe="/")
download_urls.append(f"{endpoint}/{bucket}/{object_key}")
return img_urls, download_urls
def get_remote_file_stream(url): def get_remote_file_stream(url):
"""获取远程文件的流""" """获取远程文件的流"""

View File

@ -730,7 +730,7 @@ document.getElementById('submitBtn').onclick = async () => {
throw new Error(uploadResult.error || '参考图上传失败'); throw new Error(uploadResult.error || '参考图上传失败');
} }
image = (uploadResult.urls || []).map(url => new URL(url, window.location.origin).href); image = uploadResult.download_urls || [];
if (image.length !== uploadedFiles.length) { if (image.length !== uploadedFiles.length) {
throw new Error('部分参考图上传失败'); throw new Error('部分参考图上传失败');
} }