function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Nirmal9114Nirmal9114 

Notes and attachment on Portal for Current Logged in User

My requirement is to Show Portal user their Notes and Attachment only.
How should i do it for the current logged in user.?

My VF PAGE  

<apex:page standardController="Account" extensions="AttachmentUploadController">  
  <apex:sectionHeader title="Visualforce Example" subtitle="Attachment Upload Example"/>

  <apex:form enctype="multipart/form-data">
    <apex:pageMessages />
    <apex:pageBlock title="Upload a Attachment">

      <apex:pageBlockButtons >
        <apex:commandButton action="{!upload}" value="Save"/>
      </apex:pageBlockButtons>

      <apex:pageBlockSection showHeader="false" columns="2" id="block1">
        <apex:pageBlockSectionItem >
          <apex:outputLabel value="File Name" for="fileName"/>
          <apex:inputText value="{!attachment.name}" id="fileName"/>
        </apex:pageBlockSectionItem>

       <apex:pageBlockSectionItem >
          <apex:outputLabel value="File" for="file"/>
          <apex:inputFile value="{!attachment.body}" filename="{!attachment.name}" id="file"/>
        </apex:pageBlockSectionItem>

        <apex:pageBlockSectionItem >
          <apex:outputLabel value="Description" for="description"/>
          <apex:inputTextarea value="{!attachment.description}" id="description"/>
        </apex:pageBlockSectionItem>
      </apex:pageBlockSection>

    </apex:pageBlock>
  </apex:form>
</apex:page>


MY CONTROLLER :

public class AttachmentUploadController {

    public AttachmentUploadController(ApexPages.StandardController controller) {

    }


  public Attachment attachment {
  get {
      if (attachment == null)
        attachment = new Attachment();
      return attachment;
    }
  set;
  }
  


  public PageReference upload() {
    
    
   attachment.OwnerId = UserInfo.getUserId();
   attachment.ParentId = '3D0011700000Jns3g'; // Account record id
   attachment.IsPrivate = true;

    try {
      insert attachment;
     
    } catch (DMLException e) {
      ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,'Error uploading attachment'));
      return null;
    } finally {
      attachment = new Attachment(); 
    }

    ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO,'Attachment uploaded successfully'));
    return null;
  }

}
Naval Sharma4Naval Sharma4
Hi Tanya,

To show attachments on VF page you have to query all the related attachments and you can show using <apex:dataTable> or <apex:repeat>

Use below code snippet to query records.
public getAllAttachments(){
   return [SELECT Id, Name, Description FROM Attachment where OwnerId =: UserInfo.getUserId()];
}

 
Nirmal9114Nirmal9114
Hi Naval,

i updated my Controller. then also i cannt see the file which i attach or ia attached to that account

public class AttachmentUploadController {

    public String listatt { get; set; }

    public String item { get; set; }
    public String AccountTable { get; set; }
  public list<Attachment> lstAttach{get;set;}
   
 
    public String getAttachmentUploadController() {
        return null;
    }


    public String getAccount() {
        return null;
    }
    
 

    public AttachmentUploadController() {

    }
    
   


    public AttachmentUploadController(ApexPages.StandardController controller) {
     }

 
  public Attachment attachment {
  get {
      if (attachment == null)
        attachment = new Attachment();
      return attachment;
    }
  set;
  }
 
  public PageReference upload() {
    
    
   attachment.OwnerId = UserInfo.getUserId();
   attachment.ParentId = '0011700000Jns3gAAB'; // Account record id
   attachment.IsPrivate = true;

    try {
      insert attachment;
     
    } catch (DMLException e) {
      ApexPages.addMessage(new ApexPages.message(ApexPages.severity.ERROR,'Error uploading attachment'));
      return null;
    } finally {
      attachment = new Attachment();
    }

    ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO,'Attachment uploaded successfully'));
    return null;
  }

}