Spring – 如何将文件夹中的图像上传到数据库

huangapple go评论180阅读模式
英文:

Spring - How to upload image from folder to database

问题

  1. private Byte[] getImage() throws IOException {
  2. String imageUrl = ServletContext.class.getClassLoader()
  3. .getResource("static/anImage.jpg")
  4. .getFile();
  5. Byte[] byteObject = new Byte[imageUrl.getBytes().length];
  6. int i = 0;
  7. for (Byte b : imageUrl.getBytes()){
  8. byteObject[i++] = b;
  9. }
  10. return byteObject;
  11. }
英文:

Hello im trying to do something like this:

  1. private Byte[] getImage() throws IOException {
  2. String imageUrl = ServletContext.class.getClassLoader()
  3. .getResource("static/anImage.jpg")
  4. .getFile();
  5. Byte[] byteObject = new Byte[imageUrl.getBytes().length];
  6. int i = 0;
  7. for (Byte b : imageUrl.getBytes()){
  8. byteObject[i++] = b;
  9. }
  10. return byteObject;
  11. }

But it's wrong. So how to pick up a file from specific directory? Thanks.

ps.
I can do something like this:

  1. File file = new File("image.jpg");
  2. byte[] content = Files.readAllBytes(file.toPath());

But still its a path only from the main folder. Dont know how to program for the resources/images folder.

答案1

得分: 1

不要重新发明轮子,例如使用Apache Commons将文件转换为字节数组。阅读更多FileUtils.readFileToByteArray(File input)

您加载资源的方式似乎是正确的。

请确保加载的文件位于正确的位置(src/main/resources)。

您是否有任何特定的错误或堆栈跟踪描述了问题。

英文:

Don't reinvent the wheel and use e.g. Apache Commons for convert a File to byte array. Read more <a href="https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/FileUtils.html#readFileToByteArray(java.io.File)">FileUtils.readFileToByteArray(File input)</a>

The way you loading resources seems to be the proper one.

Ensure that the loaded file is in proper location (src/main/resources).

Do you have any particular error or stack trace which describes the issue.

答案2

得分: 1

在Spring中,您可以使用Resources来实现您的目标:

  1. Resource resource = new ClassPathResource("static/anImage.jpg");
  2. byte[] bytes = resource.getInputStream().readAllBytes();
英文:

In Spring you can use Resources to achieve your goal:

  1. Resource resource = new ClassPathResource(&quot;static/anImage.jpg&quot;);
  2. byte[] bytes = resource.getInputStream().readAllBytes();

huangapple
  • 本文由 发表于 2020年7月22日 21:57:53
  • 转载请务必保留本文链接:https://go.coder-hub.com/63035956.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定