用java保存多个附件



我曾将一个文件保存到数据库(postgresql)中,它运行良好。但当我尝试上传多个文件时,我被卡住了。

我的jsp文件上传:

<input type="file" id="reqFile" name="attachments.myFile" multiple/>

这是我的行动方法:

    public String SaveAttachments() throws SQLException, IOException {
    int case_id = (Integer) session.get("case_id");
    System.out.println("in save attachments()");
    int uploaded_by = 1;
    try {
        File destFile = new File(attachments.getMyFileFileName());
        FileUtils.copyFile(attachments.getMyFile(), destFile);
        fis = new FileInputStream(destFile);
        currentCon = ConnectionManager.getConnection();
        pstmt = (PreparedStatement) currentCon.prepareStatement("insert into case_attachments(case_id, attachment, attachment_title, upload_date, uploaded_by) values(?,?,?,current_date,?)");
        pstmt.setInt(1, case_id);
        pstmt.setBinaryStream(2, fis, (int) destFile.length());
        pstmt.setString(3, attachments.getMyFileFileName());
        pstmt.setInt(4, uploaded_by);
        pstmt.executeUpdate();
    } catch (Exception e) {
        System.out.println("Error From SaveAttachments :" + e);
    }
    return SUCCESS;
}

当我附加多个文件时,它以逗号分隔的格式进入数据库的同一列。当用户附加多个文件时,如何将文件保存在不同的行中?提前谢谢。

您可以像这里描述的那样上传多个文件,然后只需循环它们并一次将它们插入数据库中。

您只需要决定是使用业务层还是直接从Action中执行插入作业(不是最佳实践…),以及是将所有文件放在单个事务中,还是将每个文件放在自己的事务中。

请记住,HTML5multiple属性应该是multiple="multiple",而不仅仅是multiple(尽管大多数浏览器即使在"怪癖"时也能正确处理)。

使用数组进行多次上传。

<td><input type="file" name="file[]" class="multi" id="reqFile"></td>

相关内容

  • 没有找到相关文章

最新更新