You need to sign in to do that
Don't have an account?

Maximum view state size limit (128K) exceeded. Actual viewstate size for this page was 894.281K.B
Hi All
I have made a custom VF page to upload document. But when I tried to upload a file of 1 MB or more , error shows to say
"Maximum view state size limit (135KB) exceeded. Actual view state size for this page was 156.641KB".
I got some hints from forum, It didn't work for me
I inspected the ViewStateSize on DevelopementMode's ViewState Tab
It shows more viewstate for "internal" node
Below I am sending my VF & Apex Code
VF Code:
-----------
<apex:page showHeader="false" standardController="Document" extensions="DocumentUploadController" >
<apex:messages />
<apex:outputPanel >
<apex:form >
<apex:pageBlock title="Doc Uploader" >
<table>
<tr>
<td>
<span>Select Folder</span>
</td>
<td>
<apex:selectList value="{!folderId}" size="1" style="width:200px;">
<apex:selectoptions value="{!folderList}"/>
</apex:selectList>
</td>
</tr>
<tr>
<td>
<span>Doc Title</span>
</td>
<td align="">
<apex:inputField value="{!Document.Name}" label="" style="width:400px;"/>
</td>
</tr>
<tr>
<td>
<span>Browse</span>
</td>
<td align="">
<apex:inputFile value="{!Document.body}" contentType="{!Document.ContentType}"/>
</td>
</tr>
</table>
</apex:pageBlock>
<div style="text-align: center">
<apex:commandButton value="Upload" action="{!save}" status="mystatus"/>
<apex:commandButton value="Close" onclick="window.close();" immediate="true"/>
<apex:actionStatus id="mystatus">
<apex:facet name="start">
<apex:outputPanel >Uploading.....
<apex:image value="/img/loading32.gif" style="height: 15px;"/>
</apex:outputPanel>
</apex:facet>
</apex:actionStatus>
</div>
</apex:form>
</apex:outputPanel>
<apex:outputPanel rendered="{!uploadFlg == true}">
<div style="text-align: center">
Uploaded Successfully<br />
<a href="{!DownloadLink}">Download Here</a>
Link : {!DownloadLink}
</div>
</apex:outputPanel>
</apex:page>
APEX Code:
-----------------
/**
* Apex Controller for Document Uploading for DB Version
**/
public class DocumentUploadController {
public ID folderId {get;set;}
public List<Selectoption> folderList {get;set;}
private ApexPages.StandardController ctlr;
public Boolean uploadFlg {get;set;}
public String targetId {get;set;}
public DocumentUploadController(ApexPages.StandardController controller){
this.ctlr = controller;
uploadFlg = false;
List<Folder> folders = [select Type, Name, Id, DeveloperName from Folder where Name != '' and AccessType = 'Public'];
folderList = new List<Selectoption>();
//Selecting folder for picklist in VF page
for(Folder folder:folders) {
if(folder.Name == null) continue;
SelectOption so = new SelectOption(folder.Id, folder.Name);
folderList.add(so);
}
System.debug('=======Folder ID to upload====='+System.currentPageReference().getParameters().get('fldrId'));
// setting current folder as default
if(System.currentPageReference().getParameters().get('fldrId') != NULL){
folderId = System.currentPageReference().getParameters().get('fldrId');
}
// setting 1st folder as default
else if(folderList.size() > 0) {
folderId = folderList[0].getValue();
}
}
/*****Method to handle Save functionality*******/
public PageReference Save(){
transient Document d = (Document) ctlr.getRecord();
d.FolderId = folderId;
d.IsPublic = true;
ctlr.save();
uploadFlg = true;
targetId = ctlr.getId();
d=NULL;
ctlr = NULL;
return null;
}
public String getDownloadLink() {
String url = '/servlet/servlet.FileDownload?file='+targetId;
return url;
}
}
Please help me..
Hi,
Try the below code snippet as reference:
[1:43:47 PM] Vikas Gupta: /**
* Apex Controller for Document Uploading for DB Version
**/
public class DocumentUploadController {
public ID folderId {get;set;}
public List<Selectoption> folderList {get;set;}
transient public ApexPages.StandardController ctlr;
public Boolean uploadFlg {get;set;}
public String targetId {get;set;}
public DocumentUploadController(ApexPages.StandardController controller){
this.ctlr = controller;
uploadFlg = false;
List<Folder> folders = [select Type, Name, Id, DeveloperName from Folder where Name != '' and AccessType = 'Public'];
folderList = new List<Selectoption>();
//Selecting folder for picklist in VF page
for(Folder folder:folders) {
if(folder.Name == null) continue;
SelectOption so = new SelectOption(folder.Id, folder.Name);
folderList.add(so);
}
System.debug('=======Folder ID to upload====='+System.currentPageReference().getParameters().get('fldrId'));
// setting current folder as default
if(System.currentPageReference().getParameters().get('fldrId') != NULL){
folderId = System.currentPageReference().getParameters().get('fldrId');
}
// setting 1st folder as default
else if(folderList.size() > 0) {
folderId = folderList[0].getValue();
}
}
/*****Method to handle Save functionality*******/
public PageReference Save(){
transient Document d = (Document) ctlr.getRecord();
d.FolderId = folderId;
d.IsPublic = true;
ctlr.save();
uploadFlg = true;
targetId = ctlr.getId();
d.body=NULL; // chnage this
ctlr = NULL;
return null;
}
public String getDownloadLink() {
String url = '/servlet/servlet.FileDownload?file='+targetId;
return url;
}
}
Did this answer your question? If not, let me know what didn't work, or if so, please mark it solved.
Thanks for Reply,
.No Result!!!, Same error is coming