⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 attachmentxml.java

📁 解觖java技术中后台无法上传数给的情况
💻 JAVA
📖 第 1 页 / 共 2 页
字号:

        if (attachmentID>0) {
            addAttachment(Integer.toString(attachmentID),
                          memberName, attachFilename, attachFileSize, attachMimeType,
                          attachDesc, attachCreationIP, attachCreationDate, attachModifiedDate,
                          attachDownloadCount, attachOption, attachStatus);
        } else {
            throw new CreateException("Can't create an attachment, because it has no ID assigned yet.");
        }
    }

    /**
     * Creates an attachment. All argument values (<code>int</code>s, <code>Timestamp</code>s, ...)
     * are represented as <code>String</code>s, because of more convenient using
     * of this method for XML parsing.
     *
     * @param strAttachmentID Must be non-null valid integer number, because it
     *                        is the only way to know which file on server corresponds
     *                        to this attachment.
     * @param memberName Can be null.
     * @param attachFilename Name of attachment file to be displayed on forum pages.
     * @param attachFileSize Size of attachment file.
     * @param attachMimeType MIME type of attachment file.
     * @param attachDesc Can be null.
     * @param attachCreationIP Can be null.
     * @param attachCreationDate Can be null.
     * @param attachModifiedDate Can be null.
     * @param attachDownloadCount Can be null.
     * @param attachOption Can be null.
     * @param attachStatus Can be null.
     *
     * @throws CreateException
     * @throws DuplicateKeyException
     * @throws ObjectNotFoundException
     * @throws DatabaseException
     * @throws ForeignKeyNotFoundException
     */
    public void addAttachment(String strAttachmentID,
                       String memberName, String attachFilename,
                       String attachFileSize, String attachMimeType,
                       String attachDesc, String attachCreationIP,
                       String attachCreationDate, String attachModifiedDate,
                       String attachDownloadCount, String attachOption,
                       String attachStatus)
        throws CreateException, ObjectNotFoundException, DatabaseException {

        if (parentPostID<0) {
            throw new CreateException("Can't create an attachment, because no parent post assigned yet.");
        }
        boolean idOk = (attachFilename!=null) &&
                       (attachFileSize!=null) &&
                       (attachMimeType!=null) &&
                       (strAttachmentID!=null) &&
                       (!strAttachmentID.equals(""));
        //now ensure that strAttachmentID is valid number, and >=0
        if (idOk) try {
            attachmentID = Integer.parseInt(strAttachmentID);
            idOk = (attachmentID>=0);
        } catch (NumberFormatException e) {
            idOk=false;
        }

        if (!idOk) {
            attachmentID=-1;
            throw new CreateException("Not enough data to create an attachment, or the ID is invalid.");
        } else {
            //these values are not neccessary here, but I wanted to use them to validate
            //the strings - e.g, does attachOption string really contain a number ?
            int attachFileSize1;
            java.sql.Timestamp attachCreationDate1;
            java.sql.Timestamp attachModifiedDate1;
            int attachDownloadCount1;
            int attachOption1;
            int attachStatus1;

            try {
                if (memberName==null) memberName="";
                attachFileSize1= XMLUtil.stringToIntDef(attachFileSize, 0);
                if (attachDesc==null) attachDesc="";
                if (attachCreationIP==null) attachCreationIP="0.0.0.0";
                attachCreationDate1= XMLUtil.stringToSqlTimestampDefNow(attachCreationDate);
                attachModifiedDate1= XMLUtil.stringToSqlTimestampDefNull(attachModifiedDate);
                attachDownloadCount1= XMLUtil.stringToIntDef(attachDownloadCount, 0);
                attachOption1= XMLUtil.stringToIntDef(attachOption, 0);
                attachStatus1= XMLUtil.stringToIntDef(attachStatus, 0);
            } catch (NumberFormatException e) {
                throw new CreateException("Invalid data for an attachment. Expected a number.");
            }

            //allow memberName to be empty, meaning unknown user (don't use MEMBER_ID_OF_GUEST)
            int memberID=0;
            if (!memberName.equals("")) {
                memberID=DAOFactory.getMemberDAO().getMemberIDFromMemberName(memberName);
            }
            //I must change all possible nulls into "", so I don't get "'null'" in sql query
            String attachModifiedDate2= XMLUtil.sqlTimestampToStringDefEmpty(attachModifiedDate1);

            attachFilename=EnableHtmlTagFilter.filter(attachFilename);
            attachMimeType=EnableHtmlTagFilter.filter(attachMimeType);
            attachDesc=EnableHtmlTagFilter.filter(attachDesc);
            if (ImportWebHelper.execUpdateQuery(
               "INSERT INTO "+ AttachmentDAO.TABLE_NAME +
               " (AttachID, PostID, MemberID," +
               " AttachFilename, AttachFileSize, AttachMimeType," +
               " AttachDesc, AttachCreationIP, AttachCreationDate, AttachModifiedDate," +
               " AttachDownloadCount, AttachOption, AttachStatus)" +
               " VALUES (" +strAttachmentID+ ", "+parentPostID+", " +memberID+
               ", '" +attachFilename+ "', " +attachFileSize1+
               ", '" +attachMimeType+ "', '" +attachDesc+
               "', '" +attachCreationIP+ "', '" +attachCreationDate1+
               "', '" +attachModifiedDate2+ "', " +attachDownloadCount1+
               ", " +attachOption1+ ", " +attachStatus1+ ")"
            ) != 1) {
                throw new CreateException("Error adding attachment \""+attachFilename+"\" into table '"+
                    AttachmentDAO.TABLE_NAME +"'.");
            }

            //attachmentID was already set up
        }
    }


// ===============================================================
// ==================== STATIC EXPORT METHODS ====================
// ===============================================================
    public static void exportAttachmentList(XMLWriter xmlWriter, int parentPostID)
    throws IOException, ExportException, ObjectNotFoundException, DatabaseException {
        Collection attachments=ExportWebHelper.execSqlQuery(
                   "SELECT AttachID, MemberID,"+
                   " AttachFilename, AttachFileSize, AttachMimeType, AttachDesc,"+
                   " AttachCreationIP, AttachCreationDate, AttachModifiedDate,"+
                   " AttachDownloadCount, AttachOption, AttachStatus"+
                   " FROM "+AttachmentDAO.TABLE_NAME+
                   " WHERE PostID="+Integer.toString(parentPostID));
        Iterator iter=attachments.iterator();
        String[] attachment=null;
        //try {
            xmlWriter.startElement("AttachmentList");
            try {
                while ( (attachment=(String[])iter.next()) !=null) {
                    if (attachment.length!=12) {
                        throw new ExportException("Error while retrieving list of attachments for postID="+parentPostID+".");
                    }
                    xmlWriter.startElement("Attachment", new String[]{"id", attachment[0]});
                    String memberName=DAOFactory.getMemberDAO().getMember_forPublic(Integer.parseInt(attachment[1])).getMemberName();
                    xmlWriter.startElement("MemberName");
                    xmlWriter.writeData(memberName);
                    xmlWriter.endElement("MemberName");
                    xmlWriter.startElement("AttachFilename");
                    xmlWriter.writeData(DisableHtmlTagFilter.filter(attachment[2]));
                    xmlWriter.endElement("AttachFilename");
                    xmlWriter.startElement("AttachFileSize");
                    xmlWriter.writeData(attachment[3]);
                    xmlWriter.endElement("AttachFileSize");
                    xmlWriter.startElement("AttachMimeType");
                    xmlWriter.writeData(DisableHtmlTagFilter.filter(attachment[4]));
                    xmlWriter.endElement("AttachMimeType");
                    xmlWriter.startElement("AttachDesc");
                    xmlWriter.writeData(DisableHtmlTagFilter.filter(attachment[5]));
                    xmlWriter.endElement("AttachDesc");
                    xmlWriter.startElement("AttachCreationIP");
                    xmlWriter.writeData(attachment[6]);
                    xmlWriter.endElement("AttachCreationIP");
                    xmlWriter.startElement("AttachCreationDate");
                    xmlWriter.writeData(attachment[7]);
                    xmlWriter.endElement("AttachCreationDate");
                    xmlWriter.startElement("AttachModifiedDate");
                    xmlWriter.writeData(attachment[8]);
                    xmlWriter.endElement("AttachModifiedDate");
                    xmlWriter.startElement("AttachDownloadCount");
                    xmlWriter.writeData(attachment[9]);
                    xmlWriter.endElement("AttachDownloadCount");
                    xmlWriter.startElement("AttachOption");
                    xmlWriter.writeData(attachment[10]);
                    xmlWriter.endElement("AttachOption");
                    xmlWriter.startElement("AttachStatus");
                    xmlWriter.writeData(attachment[11]);
                    xmlWriter.endElement("AttachStatus");
                    xmlWriter.endElement("Attachment");
                }
            } catch (NoSuchElementException e) {
                //no more database records
            }
            xmlWriter.endElement("AttachmentList");
         //} catch throw exportexception
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -