From f308892ba4aad2a3e6e6a0d84e1068d5249a80d8 Mon Sep 17 00:00:00 2001 From: MaDaLei Date: Fri, 17 Apr 2026 13:19:38 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=B8=8A=E4=BC=A0=E8=B7=AF=E5=BE=84?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E7=BB=9D=E5=AF=B9=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/petstore/controller/FileController.java | 7 ++++--- src/main/resources/application.yml | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/petstore/controller/FileController.java b/src/main/java/com/petstore/controller/FileController.java index c82231c..041e260 100644 --- a/src/main/java/com/petstore/controller/FileController.java +++ b/src/main/java/com/petstore/controller/FileController.java @@ -39,20 +39,21 @@ public class FileController { private String uploadPath; /** - * 微信小程序 uni.uploadFile 常为 application/octet-stream;须优先认扩展名,再认 MIME。 + * 微信小程序 uni.uploadFile:multipart 里 file 的 Content-Type 经常为空或 octet-stream; + * 临时路径也可能没有「.jpg」等后缀,不能因 MIME 为空直接拒绝。 */ static boolean isAllowedMediaType(String contentType, String originalFilename) { if (hasMediaExtension(originalFilename)) { return true; } if (contentType == null || contentType.isBlank()) { - return false; + // 无 MIME、无扩展名时仍放行(保存时用默认后缀 + 大小启发式),避免线上全部 400 + return true; } String ct = contentType.toLowerCase(Locale.ROOT).trim(); if (ct.startsWith("image/") || ct.startsWith("video/")) { return true; } - // 微信客户端上传常见:无正确 MIME,按二进制传 return "application/octet-stream".equals(ct); } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 352ade6..8bbc528 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -30,7 +30,7 @@ server: context-path: upload: - path: uploads + path: /www/petstore/uploads logging: level: