当前位置: 首页 > 知识库问答 >
问题:

在web应用程序中保存图像文件,Java[已关闭]

太叔鸿
2023-03-14

想要改进此问题?通过编辑这篇文章来更新问题,以便可以用事实和引用来回答它。

在我的Web应用程序中,我希望允许“客户端用户”上传大量图像文件,并且“客户端用户”必须能够看到上传图像文件的网格。

在这种情况下,所有图像文件都有权进行上传、读取、删除和编辑操作。

基本上我使用的是java技术,但我有疑问,

    < li >管理这种大型图像文件最安全、最有效的方法是什么? < li >在这种web应用程序中,最合适的技术堆栈是什么?

共有1个答案

壤驷经国
2023-03-14

转到此存储库,并从db分支转到显示图像。基本方法如下:

>

  • 在实体中,您有:

    @Lob
    private Byte[] image;
    

    < code > image controller . Java -通过< code>MultipartFile获取图像

    @PostMapping("recipe/{id}/image")
    public String handleImagePost(@PathVariable String id, @RequestParam("imagefile") MultipartFile file){
    
        imageService.saveImageFile(Long.valueOf(id), file);
    
        return "redirect:/recipe/" + id + "/show";
    }
    

    调用<code>imageService

    该服务基本上将图像内容复制到一个字节数组中,最后您将这个字节数组分配给您的实体。

    @Override
    @Transactional
    public void saveImageFile(Long recipeId, MultipartFile file) {
    
    try {
        Recipe recipe = recipeRepository.findById(recipeId).get();
    
        Byte[] byteObjects = new Byte[file.getBytes().length];
    
        int i = 0;
    
        for (byte b : file.getBytes()){
            byteObjects[i++] = b;
        }
    
        recipe.setImage(byteObjects);
    
        recipeRepository.save(recipe);
    } catch (IOException e) {
        //todo handle better
        log.error("Error occurred", e);
    
        e.printStackTrace();
    }
    }
    

    要获得完整的源代码,请访问repo,这肯定会有所帮助。但是,我强烈建议将文件存储在磁盘上,而不是数据库中。数据库应该只存储文件的路径。对于这样的解决方案,这里有一个示例:链接

    断续器

    • 我强烈建议不要将数据存储在数据库本身中,而是存储在文件系统中。(例如:在文件夹中。)
    • 本指南可能也会有所帮助。
    • 在这里您可以找到一个完整的RESTful实现。

    干杯!

  •  类似资料:
    • 当我从图库中选择一个图像时,我可以获得该图像的Uri,如下所示: 上面检索到的Uri的格式是content://media/external/images/media/7266 但是,当我试图获取刚保存为文件的图像的Uri时,无法以这种格式检索Uri: 从上面的代码获得的Uri是/storage/emulated/0/dcim/camera/02-04-16 12-49-16.png 我相信,这不

    • 我如何保存(下载)图像到本地存储? 谢谢!

    • 问题内容: 我正在编写一个基于跨平台Swing的应用程序,在该应用程序中我想利用已在OS中注册的文件关联。 因此,iv到了可以单击文件并加载应用程序的地步,但是我需要知道的是如何让我的应用程序知道启动文件的文件的位置,然后查询内容。 与文件关联注册还有其他关系吗?还是Java可以帮我做到这一点? 问题答案: 我不是很肯定,但是我希望通过文件单击处理的文件名最终会出现在方法的参数中。您是否尝试过/检

    • 问题内容: 我有一个UIImageView,它允许用户放置并保存图像,直到可以保存为止。问题是,我不知道如何实际保存和检索放置在视图中的图像。 我已经将图像检索并放置在UIImageView中,如下所示: 它在我的UIImageView中显示选定的图像就很好了,但是我不知道如何保存它。我将视图的所有其他部分(主要是UITextfield)保存在Core Data中。我已经搜索了很多,然后尝试了很多

    • @getmapping(value=“/image”,produces=“application/pdf”)@responsebody public String downloadFile(@pathvariable(“path”)String path)抛出IOException{ClassPathResource downloadLink=new ClassPathResource(“/ass

    • 这是我的选项2选项 但它给出了一个错误的说法 java.io.FileNotFoundException:C:\users\businesssupport\documents\netBeansProjects\InvoiceGenerator\resources\hemaslogo.jpg(系统找不到指定的路径)