上传图片后,数据库空白

我上传图片后,后台的文件夹也保存图片了,但是数据库里的就是空白的,请问是哪里的代码有问题呢?

img


                  :span="8">
                    "物资图片" prop="unit">
                      "image/jpeg,image/png"
                          :on-preview="handlePreview"
                          :on-remove="handleRemove"
                          :before-remove="beforeRemove"
                          ref="upload"
                          :action="'http://localhost:8989/api/uploadImage'"
                          :http-request="upload"
                          :auto-upload="false"
                          :before-upload="onBeforeUpload"
                          multiple
                          :limit="1"
                          :on-exceed="handleExceed"
                          v-model="addForm.pictures">
                        "small" type="primary">点击上传
                        
"tip" class="el-upload__tip">只能上传jpg/png文件,且不超过1M
"primary" @click="addIn">立即捐赠 "addIn"> INSERT INTO instock (itemname,numbers,fromwho,worker,state,unit,pictures) VALUE (#{itemname},#{numbers},#{fromwho},#{worker},#{state},#{unit},#{pictures}) @RequestMapping("/addIn2") public String addIn2(@RequestBody InStock inStock){ inStock.setState(0); inStock.setFromwho(2); int i = inStockDao.addIn(inStock); return i > 0 ? "success":"error"; } @RequestMapping(value = "/api/uploadImage", method = RequestMethod.POST) @ResponseBody public String uploadImage(@RequestParam("files") MultipartFile file) throws IOException { System.out.println(file.getOriginalFilename() + "图片已传入!!"); byte[] b = file.getBytes(); String fileName = file.getOriginalFilename(); Path path = Paths.get("src/main/resources/pictures/" + fileName); Files.write(path, b); return fileName; }

你这个服务前台是怎么请求的? 看这个就是 保存数据库的逻辑,picture字段也是前台传的吧

img

以下内容部分参考ChatGPT模型:


首先需要检查上传图片时是否有将图片信息保存到数据库中,可以查看保存图片的代码是否有操作数据库的语句。如果有操作数据库的语句,需要检查是否正确设置了数据库连接信息,以及是否正确执行了插入操作。如果没有操作数据库的语句,需要添加插入操作将图片信息保存到数据库中。另外,还需要检查数据库表结构是否正确,是否正确设置了图片信息的字段类型和长度等信息。以下是一个简单的保存图片信息到数据库的示例代码:

// 保存图片信息到数据库
public void saveImageToDatabase(String imageName, byte[] imageData) {
    try {
        // 获取数据库连接
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password");
        // 创建PreparedStatement对象
        PreparedStatement ps = conn.prepareStatement("INSERT INTO images (name, data) VALUES (?, ?)");
        // 设置参数
        ps.setString(1, imageName);
        ps.setBytes(2, imageData);
        // 执行插入操作
        ps.executeUpdate();
        // 关闭连接和PreparedStatement对象
        ps.close();
        conn.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

其中,images为保存图片信息的表名,name和data分别为保存图片名称和图片数据的字段名,需要根据具体表结构进行设置。


如果我的建议对您有帮助、请点击采纳、祝您生活愉快