spring boot addResourceHandler not working using service
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
I wanted to upload dynamic images and serve them using <img>
tag, so I followed this solution:
Spring Boot images uploading and serving
Absolute path of project: /home/vkumar/apps/contest
Absolute path of upload dir: /home/vkumar/apps/contest/uploads
ResourceConfig.java
public class ResourceConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
registry.addResourceHandler("/uploads/**").addResourceLocations("file:uploads/");
}
}
Then I uploaded a file in uploads dir test.jpg
Now If I go to the server and run the app using the command
mvn spring-boot:run
and open image http://example.com:8080/uploads/test.jpg
all work fine, I can see an image which been uploaded however If I create jar using the command
mvn clean package
I see the error "This application has no explicit mapping for /error, so you are seeing this as a fallback."
java spring-boot spring-mvc
add a comment |
I wanted to upload dynamic images and serve them using <img>
tag, so I followed this solution:
Spring Boot images uploading and serving
Absolute path of project: /home/vkumar/apps/contest
Absolute path of upload dir: /home/vkumar/apps/contest/uploads
ResourceConfig.java
public class ResourceConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
registry.addResourceHandler("/uploads/**").addResourceLocations("file:uploads/");
}
}
Then I uploaded a file in uploads dir test.jpg
Now If I go to the server and run the app using the command
mvn spring-boot:run
and open image http://example.com:8080/uploads/test.jpg
all work fine, I can see an image which been uploaded however If I create jar using the command
mvn clean package
I see the error "This application has no explicit mapping for /error, so you are seeing this as a fallback."
java spring-boot spring-mvc
The fact that you're using a relative path is probably part of the problem.
– chrylis
Jan 3 at 8:40
Probably the image isn't in the built jar file by maven.
– Wes
Jan 3 at 8:42
@chrylis - updated question with absolute path. Tried this registry.addResourceHandler("uploads/**").addResourceLocations("/home/vkumar/apps/contest/uploads/")
– VK321
Jan 3 at 8:46
@Wes - yes files are not in jar as those would be uploaded dynamically.
– VK321
Jan 3 at 8:47
add a comment |
I wanted to upload dynamic images and serve them using <img>
tag, so I followed this solution:
Spring Boot images uploading and serving
Absolute path of project: /home/vkumar/apps/contest
Absolute path of upload dir: /home/vkumar/apps/contest/uploads
ResourceConfig.java
public class ResourceConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
registry.addResourceHandler("/uploads/**").addResourceLocations("file:uploads/");
}
}
Then I uploaded a file in uploads dir test.jpg
Now If I go to the server and run the app using the command
mvn spring-boot:run
and open image http://example.com:8080/uploads/test.jpg
all work fine, I can see an image which been uploaded however If I create jar using the command
mvn clean package
I see the error "This application has no explicit mapping for /error, so you are seeing this as a fallback."
java spring-boot spring-mvc
I wanted to upload dynamic images and serve them using <img>
tag, so I followed this solution:
Spring Boot images uploading and serving
Absolute path of project: /home/vkumar/apps/contest
Absolute path of upload dir: /home/vkumar/apps/contest/uploads
ResourceConfig.java
public class ResourceConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
registry.addResourceHandler("/uploads/**").addResourceLocations("file:uploads/");
}
}
Then I uploaded a file in uploads dir test.jpg
Now If I go to the server and run the app using the command
mvn spring-boot:run
and open image http://example.com:8080/uploads/test.jpg
all work fine, I can see an image which been uploaded however If I create jar using the command
mvn clean package
I see the error "This application has no explicit mapping for /error, so you are seeing this as a fallback."
java spring-boot spring-mvc
java spring-boot spring-mvc
edited Jan 3 at 8:44
VK321
asked Jan 3 at 8:34
VK321VK321
2,37421628
2,37421628
The fact that you're using a relative path is probably part of the problem.
– chrylis
Jan 3 at 8:40
Probably the image isn't in the built jar file by maven.
– Wes
Jan 3 at 8:42
@chrylis - updated question with absolute path. Tried this registry.addResourceHandler("uploads/**").addResourceLocations("/home/vkumar/apps/contest/uploads/")
– VK321
Jan 3 at 8:46
@Wes - yes files are not in jar as those would be uploaded dynamically.
– VK321
Jan 3 at 8:47
add a comment |
The fact that you're using a relative path is probably part of the problem.
– chrylis
Jan 3 at 8:40
Probably the image isn't in the built jar file by maven.
– Wes
Jan 3 at 8:42
@chrylis - updated question with absolute path. Tried this registry.addResourceHandler("uploads/**").addResourceLocations("/home/vkumar/apps/contest/uploads/")
– VK321
Jan 3 at 8:46
@Wes - yes files are not in jar as those would be uploaded dynamically.
– VK321
Jan 3 at 8:47
The fact that you're using a relative path is probably part of the problem.
– chrylis
Jan 3 at 8:40
The fact that you're using a relative path is probably part of the problem.
– chrylis
Jan 3 at 8:40
Probably the image isn't in the built jar file by maven.
– Wes
Jan 3 at 8:42
Probably the image isn't in the built jar file by maven.
– Wes
Jan 3 at 8:42
@chrylis - updated question with absolute path. Tried this registry.addResourceHandler("uploads/**").addResourceLocations("/home/vkumar/apps/contest/uploads/")
– VK321
Jan 3 at 8:46
@chrylis - updated question with absolute path. Tried this registry.addResourceHandler("uploads/**").addResourceLocations("/home/vkumar/apps/contest/uploads/")
– VK321
Jan 3 at 8:46
@Wes - yes files are not in jar as those would be uploaded dynamically.
– VK321
Jan 3 at 8:47
@Wes - yes files are not in jar as those would be uploaded dynamically.
– VK321
Jan 3 at 8:47
add a comment |
1 Answer
1
active
oldest
votes
You can create a controller method to load the uploaded files.
You can follow this guide:
https://spring.io/guides/gs/uploading-files/
or this concise example on pastebin.
https://pastebin.com/yDr61Emm
Sample code below:
@GetMapping("/pictures/{filename:.+}")
@ResponseBody
public ResponseEntity<Resource> serveFile(@PathVariable String filename) {
Path path = rootLocation.resolve(filename);
Resource file = null;
try {
file = new UrlResource(path.toUri());
} catch (MalformedURLException ex) {
Logger.getLogger(UploadController.class.getName()).log(Level.SEVERE, null, ex);
}
return ResponseEntity.ok().header(HttpHeaders.CONTENT_DISPOSITION,
"attachment; filename="" + file.getFilename() + """).body(file);
}
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54018774%2fspring-boot-addresourcehandler-not-working-using-service%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can create a controller method to load the uploaded files.
You can follow this guide:
https://spring.io/guides/gs/uploading-files/
or this concise example on pastebin.
https://pastebin.com/yDr61Emm
Sample code below:
@GetMapping("/pictures/{filename:.+}")
@ResponseBody
public ResponseEntity<Resource> serveFile(@PathVariable String filename) {
Path path = rootLocation.resolve(filename);
Resource file = null;
try {
file = new UrlResource(path.toUri());
} catch (MalformedURLException ex) {
Logger.getLogger(UploadController.class.getName()).log(Level.SEVERE, null, ex);
}
return ResponseEntity.ok().header(HttpHeaders.CONTENT_DISPOSITION,
"attachment; filename="" + file.getFilename() + """).body(file);
}
add a comment |
You can create a controller method to load the uploaded files.
You can follow this guide:
https://spring.io/guides/gs/uploading-files/
or this concise example on pastebin.
https://pastebin.com/yDr61Emm
Sample code below:
@GetMapping("/pictures/{filename:.+}")
@ResponseBody
public ResponseEntity<Resource> serveFile(@PathVariable String filename) {
Path path = rootLocation.resolve(filename);
Resource file = null;
try {
file = new UrlResource(path.toUri());
} catch (MalformedURLException ex) {
Logger.getLogger(UploadController.class.getName()).log(Level.SEVERE, null, ex);
}
return ResponseEntity.ok().header(HttpHeaders.CONTENT_DISPOSITION,
"attachment; filename="" + file.getFilename() + """).body(file);
}
add a comment |
You can create a controller method to load the uploaded files.
You can follow this guide:
https://spring.io/guides/gs/uploading-files/
or this concise example on pastebin.
https://pastebin.com/yDr61Emm
Sample code below:
@GetMapping("/pictures/{filename:.+}")
@ResponseBody
public ResponseEntity<Resource> serveFile(@PathVariable String filename) {
Path path = rootLocation.resolve(filename);
Resource file = null;
try {
file = new UrlResource(path.toUri());
} catch (MalformedURLException ex) {
Logger.getLogger(UploadController.class.getName()).log(Level.SEVERE, null, ex);
}
return ResponseEntity.ok().header(HttpHeaders.CONTENT_DISPOSITION,
"attachment; filename="" + file.getFilename() + """).body(file);
}
You can create a controller method to load the uploaded files.
You can follow this guide:
https://spring.io/guides/gs/uploading-files/
or this concise example on pastebin.
https://pastebin.com/yDr61Emm
Sample code below:
@GetMapping("/pictures/{filename:.+}")
@ResponseBody
public ResponseEntity<Resource> serveFile(@PathVariable String filename) {
Path path = rootLocation.resolve(filename);
Resource file = null;
try {
file = new UrlResource(path.toUri());
} catch (MalformedURLException ex) {
Logger.getLogger(UploadController.class.getName()).log(Level.SEVERE, null, ex);
}
return ResponseEntity.ok().header(HttpHeaders.CONTENT_DISPOSITION,
"attachment; filename="" + file.getFilename() + """).body(file);
}
edited Jan 4 at 6:03
answered Jan 4 at 4:50
OlantobiOlantobi
6141714
6141714
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54018774%2fspring-boot-addresourcehandler-not-working-using-service%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
The fact that you're using a relative path is probably part of the problem.
– chrylis
Jan 3 at 8:40
Probably the image isn't in the built jar file by maven.
– Wes
Jan 3 at 8:42
@chrylis - updated question with absolute path. Tried this registry.addResourceHandler("uploads/**").addResourceLocations("/home/vkumar/apps/contest/uploads/")
– VK321
Jan 3 at 8:46
@Wes - yes files are not in jar as those would be uploaded dynamically.
– VK321
Jan 3 at 8:47