普通附件上传

/**
     * 普通附件上传
     * @param uploads
     * @param uploadFileNames
     * @param uploadFileLabs
     * @param apply_id_fname
     * @param attach_id_fname
     * @param attach_name_fname
     * @param attach_fname
     * @param attach_lab_fname
     * @param tname
     * @param apply_id
     * @return
     * @throws Exception
     */
    public boolean insermultipleFileDisk(List<File> uploads,
            List<String> uploadFileNames, List<String> uploadFileLabs,
            String apply_id_fname, String attach_id_fname,
            String attach_name_fname, String attach_fname,
            String attach_lab_fname, String tname, String apply_id)
            throws Exception {

        StringBuffer insert_sql = new StringBuffer();
        insert_sql.append("insert into ");
        insert_sql.append(tname);
        insert_sql.append("(");
        insert_sql.append(attach_id_fname).append(",");
        insert_sql.append(apply_id_fname).append(",");

        insert_sql.append(attach_name_fname).append(",");
        insert_sql.append(attach_fname).append(",");

        insert_sql.append(attach_lab_fname);
        insert_sql.append(") values ");
        insert_sql.append(" (?,?,?,?,?) ");

        String delte_sql = "delete " + tname + " where " + apply_id_fname
                + "=? and trim(" + attach_lab_fname + ")=?";

        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;

        String attach_id = "";

        try {
            log.debug(insert_sql.toString());

            conn = jt.getDataSource().getConnection();
            conn.setAutoCommit(false);
            for (int i = 0; i < uploads.size(); i++) {
                String serverDir = ConfigAttach.getAttachDir();
                if (StringUtils.endsWith(serverDir, "/")) {
                    serverDir = StringUtils.removeEndIgnoreCase(serverDir, "/");
                }
                String formater = "yyyy/MM/dd";
                String serverPath = "/datafiles/"
                        + DateHelper.formatDate2String(new Date(), formater)
                        + "/";// 构建图片保存的目录
                String fileType = uploadFileNames.get(i)
                        .substring(uploadFileNames.get(i).lastIndexOf('.') + 1)
                        .toLowerCase();
                // 获取文件的名称,采用UUID的方式
                String fileName = UUID.randomUUID().toString() + "." + fileType;
                // 获取完成路径
                String filepath = serverPath + fileName;
                File descFile = new File(serverDir + filepath);
                // 如果目录不存在就创建
                if (!descFile.exists()) {
                    descFile.getParentFile().mkdirs();
                }
                log.debug("upload attach path:" + descFile.getAbsolutePath());
                FileUtils.copyFile(uploads.get(i), descFile);
                String strFileName=uploadFileNames.get(i);
                ps = conn.prepareStatement(delte_sql);
                ps.setString(1, apply_id);
                ps.setString(2, uploadFileLabs.get(i).trim());
                ps.executeUpdate();

                attach_id = queryGuidFromOracle();
                ps = conn.prepareStatement(insert_sql.toString());
                ps.setString(1, attach_id);//附件的主键

                ps.setString(2, apply_id);//附件的依据主键,即谁传的附件
                ps.setString(3, strFileName);//附件的真实文件名
                ps.setString(4, filepath);//文件的下载地址

                ps.setString(5, uploadFileLabs.get(i).trim());
                ps.executeUpdate();

            }

            conn.commit();
            conn.setAutoCommit(true);
            close(conn, ps, rs);

        } catch (SQLException e) {
            e.printStackTrace();
            try {
                conn.rollback();
            } catch (SQLException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            return false;
        }

        return true;
    }
}

你可能感兴趣的:(普通附件上传)