Using API to work with BizForm files
This article describes where BizForm files are stored and how we can work with them using API.
BizForm files are
exclusively stored in the file system. You can find them by default in following location:
<your project>/<site name>/BizFormFiles/<GUID>.<extension>
Example:
~/CorporateSite/BizFormFiles/21a23606-d038-4551-b02a-34626065ec11.jpg
Of course, you can change the location of BizForm files in CMS Site Manager -> Settings -> Select your web site -> Files section in “BizForm files folder” setting.
From database point of view, following information should be stored in one of your BizForm table columns:
<GUID>.<extension>/<orig_name>.<extension>
Example:
21a23606-d038-4551-b02a-34626065ec11.jpg/DocumentName.jpg
You can access the file using following URL:
~/CMSModules/BizForms/CMSPages/GetBizFormFile.aspx?filename=" + “<GUID>.<extension>” + "&sitename=" + SiteName
Example:
~CMSModules/BizForms/CMSPages/GetBizFormFile.aspx?filename=21a23606-d038-4551-b02a-34626065ec11.jpg&sitename=CorporateSite
Direct saving to the disk can be done with usage of
DataHelper class:
// Path to BizForm files in file system.
string filesFolderPath = FormHelper.GetBizFormFilesFolderPath(this.SiteName);
// Get file size and path
string filePath = filesFolderPath + fileName;
// Ensure disk path
DirectoryHelper.EnsureDiskPath(filePath, UrlHelper.WebApplicationPhysicalPath);
DataHelper.SaveFileToDisk(filePath, postedFile.InputStream);
On the other hand you may need to retrieve the file from the disk. Here is an example:
string fileNameString = "605b0932-660c-43cf-b2e0-b5ccf519f75f.png/originalFileName.png";
BasicForm bf = new BasicForm();
string fileName = bf.GetGuidFileName(fileNameString);
string filePath = FormHelper.GetBizFormFilesFolderPath(CMSContext.CurrentSiteName) + fileName;
if (File.Exists(filePath))
{
FileStream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
// Add attachment
Attachment attachment = new Attachment(stream, bf.GetFileNameForUploader(fileNameString));
}
-it-
See also: Creating new record using API
Applies to: 6.0 and later