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

springboot输入流

饶德元
2023-03-14
void upload(@RequestParam(value="file", MultiPartFile file, @RequestParam(value = "content", required = false) InputStream html" target="_blank">stream){}

原因:java.lang.IllegalArgumentException:无法检索类路径资源[BZH91AY&SY 90 WT A%l!!9 d N$L]的InputStream:

在org.springframework.beans.propertyeditors.inputstreameditor.setastext(inputstreameditor.java:77)在org.springframework.beans.typeconverterdelegate.doconvertextvalue(typeconverterdelegate.java:449)在org.springframework.beans.typeconverterdelegate.doconvertextvalue(typeconverterdelegate.java:422)在

共有1个答案

咸弘雅
2023-03-14

控制器

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.security.core.Authentication;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import com.flasher.service.ImageService;

@RestController
public class ImageControllerRest {
    @Autowired
    ImageService imageService;

    @PostMapping("/upload_img")
    public ResponseEntity<?> uploadImage(@RequestParam("file") MultipartFile file, Authentication authentication) {
        try {
            imageService.store(file, authentication.getName());
            return new ResponseEntity<>(HttpStatus.OK);
        } catch (Exception e) {
            return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
        }

    }

}

服务

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import com.flasher.util.UUIDGenerator;

@Service
public class ImageService {
    @Value("${flasher.absolute.img.path}")
    String imageUploadPath;
    @Autowired
    UUIDGenerator uuidGenerator;

    public void store(MultipartFile file, String username) {
        try {
            File uploadFolder = new File(imageUploadPath+username);
            if (!uploadFolder.exists()) {
                uploadFolder.mkdirs();
            }           
            Files.copy(file.getInputStream(),
                    Paths.get(uploadFolder.getAbsolutePath()).resolve(uuidGenerator.generateUUID()+"."+file.getContentType().split("/")[1]));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

通过这种方式可以实现文件上传

 类似资料:
  • 在IntelliJ中启动新项目时,我遇到了一个问题: < li>Maven构建总是成功终止 < li >“重新加载所有Maven项目”导致错误 < li >无法将org . spring framework . boot . spring application导入主类 这是我的pom.xml: 注意:我尝试添加

  • 文件 std::fs::File 本身实现了 Read 和 Write trait,所以文件的输入输出非常简单,只要得到一个 File 类型实例就可以调用读写接口进行文件输入与输出操作了。而要得到 File 就得让操作系统打开(open)或新建(create)一个文件。还是拿例子来说明 use std::io; use std::io::prelude::*; use std::fs::File;

  • 回顾一下我们写的第一个 Rust 程序就是带副作用的,其副作用就是向标准输出(stdout),通常是终端或屏幕,输出了 Hello, World! 让屏幕上这几个字符的地方点亮起来。println! 宏是最常见的输出,用宏来做输出的还有 print!,两者都是向标准输出(stdout)输出,两者的区别也一眼就能看出。至于格式化输出,基础运算符和字符串格式化小节有详细说明,这里就不再啰嗦了。 更通用

  • 本小节将会介绍基本输入输出的 Java 标准类,通过本小节的学习,你将了解到什么是输入和输入,什么是流;输入输出流的应用场景,File类的使用,什么是文件,Java 提供的输入输出流相关 API 等内容。 1. 什么是输入和输出(I / O) 1.1 基本概念 输入/输出这个概念,对于计算机相关专业的同学并不陌生,在计算中,输入/输出(Input / Output,缩写为 I / O)是信息处理系

  • Boost.Assign Assign帮助你把一系列的值赋给容器。它通过对operator, (逗号操作符) and operator()() (函数调用操作符)的重载,带给用户一种数据赋值的很容易的方法。除了对原型风格的代码特别有用,这个库的功能在其它时候也很有用,使用这个库有助于提高代码的可读性。使用本库中的list_of还可以就地生成无名数组。 Assign 的作者是 Thorsten Ot

  • 简介 通过前面章节的学习,你已经可以在Scheme的交互式前端中编写并执行程序了。在本章中,我讲介绍如何输入和输出。使用这个特性,你可以从文件中读取数据或向文件中写入数据。 从文件输入 open-input-file,read-char和eof-object? 函数(open-input-file filename)可以用于打开一个文件。此函数返回一个用于输入的端口。函数(read-char po