更新文件上传功能,支持返回下载链接
This commit is contained in:
parent
bc05afbcb0
commit
6bd8a67103
@ -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
|
||||||
|
|
||||||
|
|||||||
@ -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):
|
||||||
"""获取远程文件的流"""
|
"""获取远程文件的流"""
|
||||||
|
|||||||
@ -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('部分参考图上传失败');
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user