Прикрепить файл в рабочем процессе в своей форме

Появилась необходимость возможности прикрепить файл на форме работы с заданием в рамках рабочего процесса. Как создать свою форму для задания в рамках рабочего процесса я уже рассматривал. В данной статье решил показать как добавить возможность прикреплять файлы при выполнении задания.

Добавление элемента

Естественно, сначала в aspx файл добавляем элемент:

<asp:FileUpload id="FileUpload1" runat="server"></asp:FileUpload>

Написание кода

protected string SaveFile(){//содержит список всех загружаемых файловHttpFileCollection uploadFileList = HttpContext.Current.Request.Files;if (uploadFileList.Count == 0 || FileUpload1.FileName=="") return "";   //получаем ссылку на файл, для которого запущен рабочий процессstring link = this._TaskListItem["ows_WorkflowLink"].ToString();//адресс библиотеки/списка получаемlink = link.Substring(0, link.LastIndexOf('/'));//объект создаём, который представляет собой эту библиотекуSPFolder destinationLibrary = _myTeamSite.GetFolder(link);//в данном случае мы только 1 файл прикрепляем, поэтому сразу к 0 ячейке и обращаемсяHttpPostedFile uploadFile = uploadFileList[0];System.IO.Stream MyStream = uploadFile.InputStream;int len = uploadFile.ContentLength; byte[] UpFileInByte = new byte[len];  // считываем файлMyStream.Read(UpFileInByte, 0, len);   string FName = uploadFile.FileName;if (FName.IndexOf('/') >= 0)FName = FName.Substring(FName.LastIndexOf('/') + 1);if (FName.IndexOf('\\') >= 0)FName = FName.Substring(FName.LastIndexOf('\\') + 1);//имя файла создаёмstring newFileName = link + "/"  + DateTime.Today.Day +"-"+ DateTime.Today.Month + "-" + DateTime.Today.Year+ " " + FName;//добавляем файл в библиотекуdestinationLibrary.Files.Add(newFileName, UpFileInByte, false);MyStream.Close();return newFileName;}

Теперь в обработчики кнопки вызываем этот метод и всё. Если нужно прикреплять несколько файлов, то просто в цикле прогоняем этот код для всех элементов uploadFileList.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *