Showing posts with label Attachment Object using Visualforce and Apex Class. Show all posts
Showing posts with label Attachment Object using Visualforce and Apex Class. Show all posts

Monday, January 2, 2012

View Document in Attachment Object using Visualforce and Apex Class

Apex Class :
//insertAttachment
public with sharing class insertAttachment {
    public blob attachVal {get; set;}
    public string attachName {get; set;}
    public Id AttachId;
   
    public insertAttachment() {
        AttachId = ApexPages.CurrentPage().getParameters().get('Id');
    }
   
    public PageReference insertNewFile() {
        try {
            delete [select Id from attachment where ParentId =: AttachId ];
            Blob b = attachVal;
            Attachment at = new Attachment(Name=attachName, body=b, ParentId=AttachId);
            insert at;           
        } catch(Exception e){ }
        return null;
    }
   
    public List<attachment> getAttachmentList() {
        List<attachment> attachList = new List<attachment>();
       if(AttachId != null) {
            string attachQry = 'Select Id, Name, Body, ParentId from Attachment where ParentId =: AttachId';
            attachList = (List<Attachment>) Database.query(attachQry);
        }
        return attachList;
    }
}
VisualForce Page:
<apex:page controller="insertAttachment">
  <apex:form >
      <apex:pageBlock >
          <apex:pageBlockButtons >
              <apex:commandButton value="Attach New File" action="{!insertNewFile}"/>
          </apex:pageBlockButtons>
          <apex:pageBlockSection >
              <apex:inputFile value="{!attachVal}" fileName="{!attachName}"></apex:inputFile>
          </apex:pageBlockSection>
      </apex:pageBlock>
      <apex:outputPanel >
      <apex:pageBlock title="Attach File List">
      <apex:repeat value="{!AttachmentList}" var="a">
          <a href="{!URLFOR($Action.Attachment.Download, a.Id)}">{!a.Name}</a> <br />
      </apex:repeat>
      </apex:pageBlock>
      </apex:outputPanel>
  </apex:form>
</apex:page>

Insert Document in Attachment Object using Visualforce and Apex Class

Apex Class :
//insertAttachment
public with sharing class insertAttachment {
    public blob attachVal {get; set;}
    public string attachName {get; set;}
    public Id AttachId;
   
    public insertAttachment() {
        AttachId = ApexPages.CurrentPage().getParameters().get('Id');
    }
   
    public PageReference insertNewFile() {
        try {
            delete [select Id from attachment where ParentId =: AttachId ];
            Blob b = attachVal;
            Attachment at = new Attachment(Name=attachName, body=b, ParentId=AttachId);
            insert at;           
        } catch(Exception e){ }
        return null;
    }
   
    public List<attachment> getAttachmentList() {
        List<attachment> attachList = new List<attachment>();
       if(AttachId != null) {
            string attachQry = 'Select Id, Name, Body, ParentId from Attachment where ParentId =: AttachId';
            attachList = (List<Attachment>) Database.query(attachQry);
        }
        return attachList;
    }
}
VisualForce Page:
<apex:page controller="insertAttachment">
  <apex:form >
      <apex:pageBlock >
          <apex:pageBlockButtons >
              <apex:commandButton value="Attach New File" action="{!insertNewFile}"/>
          </apex:pageBlockButtons>
          <apex:pageBlockSection >
              <apex:inputFile value="{!attachVal}" fileName="{!attachName}"></apex:inputFile>
          </apex:pageBlockSection>
      </apex:pageBlock>
      <apex:outputPanel >
      <apex:pageBlock title="Attach File List">
      <apex:repeat value="{!AttachmentList}" var="a">
          <a href="{!URLFOR($Action.Attachment.Download, a.Id)}">{!a.Name}</a> <br />
      </apex:repeat>
      </apex:pageBlock>
      </apex:outputPanel>
  </apex:form>
</apex:page>