由于某些原因,當我在UAT組態檔環境中作業時,我無法覆寫Tomcat關于檔案大小限制的設定(在SIT上一切都很順利)
我使用Spring Boot 2.2,我正在將這些屬性添加到組態檔中。
我使用的是Spring Boot 2.2,我在組態檔中添加了這些屬性:
spring.servlet.multipart.max-file-size=25MB
spring.servlet.multipart.max-request-size=25MB
然而,當我在 Eclipse IDE 上運行我的應用程式時(干凈的安裝和組態檔 UAT),當我試圖上傳大于 1MB 的檔案時(AFAIK 是 Tomcat 默認的檔案限制大小),它給我帶來了錯誤。
還有幾件事需要指出:
- application-sit.properties檔案和application-uat.properties檔案中的所有指令都是按相同的順序排列。
- 當我嘗試上傳大小小于1MB的檔案時,我得到了另一個錯誤,即UnsupportedMediaType,因此我想知道問題是在我的Angular前端還是在我的Spring Boot后端應用程式。
哦......我在本地運行我的SIT應用程式,而UAT應用程式則在虛擬機中運行(如果是與虛擬機有關的問題,我也不會感到驚訝)。
提前感謝大家的幫助,如果你們需要更多資訊,我愿意回答。
祝您有一個愉快的一天。
更新
按照@PiotrP.Karwasz的要求,我將包括我用來制作上傳服務的Angular和Spring代碼。
upload()在upload-service.ts
upload(file: File) {
const formData: formData = new FormData() 。
formData.append('file', file)。
return new Observable(( observer: Observer<any>) => {
const xhr = new XMLHttpRequest()。
xhr.onreadystatechange = _ => {
if (xhr.readyState === 4) {
if(xhr.status === 200) {
observer.next(xhr.response)。
observer.complete()。
}
else {
observer.error(xhr.response)。
}
}
};
///environment.baseUrl根據活動的組態檔配置而變化。
let url = environment.baseUrl constants.REST_UPLOAD_FILE;
xhr.open('POST', url, true)。
xhr.send(formData)。
}));
}
save()在FileStorageService.java
@Override
public void save(MultipartFile file) {
try {
String filename = FilenameUtils.removeExtension(file.getOriginalFilename() )
" - "/span>
new SimpleDateFormat("dd?MM?yyyy HH'h'?mm'min'?ss's")
.format(new Date()
.toString()
.replaceAll("[^a-zA-Z0-9.-??]"/span>, "_"/span>)
"." FilenameUtils.getExtension(file.getOriginalFilename() )。
Files.copy(file.getInputStream(), this.root.resolve(filename))。
} catch (final Exception e) {
throw new RuntimeException("Non posso salvare il file. Errore: " /span> e);
}
注意,根據我的理解,通過測驗在Eclipse控制臺列印東西,似乎它甚至沒有達到Spring Boot save()方法的程度,實際上我也嘗試在管理傳入請求的控制器方法(其代碼將在下面鏈接)上列印東西,但它沒有顯示任何東西,所以似乎它也從未達到控制器。
處理上傳請求的控制器方法在https://pastebin.com/EMZStXJw
uj5u.com熱心網友回復:
好的,在提取了我的前端構建的.war檔案后,我終于得到了它,我把這個放在這里,供任何可能需要它的人使用。
事情是,我的environment.baseUrl(見upload-service.ts檔案中的upload()方法)指向一個無效的端點(我仍然要弄清楚為什么這個端點會有這樣的行為,以及為什么它首先會出現),所以當我試圖提出請求時,我得到了與實際無關的模糊的錯誤。
修改 UAT 組態檔就足以使其發揮作用。
TLDR;
確保你在 UAT 組態檔中指向正確的 URL 端點,并提取 .war 以檢查你的 application.properties 檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/319433.html
標籤:
