Access file fields
You can use the Sitecore.Data.Fields.FileField class to access data template fields of type File. You can use the Sitecore.Data.Fields.FileField.MediaItem property to access the media item selected in the field. For example, to access the media item referenced by the File field named FileField in the /Sitecore/Content/Home item in the Master database:
Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");
Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");
Sitecore.Data.Fields.FileField fileField = home.Fields["filefield"];
Sitecore.Data.Items.Item file = fileField.MediaItem;
if (fileField==null) {
// File field not found
}
else if (file==null) {
// No file selected
}
else {
Sitecore.Data.Items.MediaItem media = new Sitecore.Data.Items.MediaItem(file);
// Process media item
}You can update the value of a File field by updating the Sitecore.Data.Fields.FileField.MediaID and Sitecore.Data.Fields.FileField.Src attributes. For example, to ensure the File field named FileField in the /Sitecore/Content/Home item in the Master database specifies the /Sitecore/Media Library/Files/Sample media item:
Sitecore.Data.Database master = Sitecore.Configuration.Factory.GetDatabase("master");
Sitecore.Data.Items.Item home = master.GetItem("/sitecore/content/home");
Sitecore.Data.Fields.FileField fileField = home.Fields["filefield"];
Sitecore.Data.Items.Item sample = master.GetItem("/sitecore/media library/files/sample");
if (fileField == null ){
// File field does not exist
}
else if (sample == null) {
// File does not exist
}
else if (fileField.MediaID != sample.ID) {
home.Editing.BeginEdit();
fileField.MediaID = sample.ID;
fileField.Src = Sitecore.Resources.Media.MediaManager.GetMediaUrl(sample);
home.Editing.EndEdit();
}