лучший способ держать файл в классе - PullRequest
1 голос
/ 05 декабря 2011

Я хотел бы держать файл в файле класса.Я пишу вложение пользователя контроля.

После загрузки файла с помощью элемента управления закачкой я хотел бы сохранить его в классе, прежде чем загружать файл в SharePoint.

Пользователь может загрузить более одного файла.

Только после этого, когда пользователь нажмет кнопку save, я сохраню все файлы и другие данные, файлы в SharePoint и другие данные в базе данных.

Вот мой класс

public class Document :
    {
        public string documentName, documentPath, spServerURL, spDocumentLibraryURL;
        public DateTime lodegmentDate;
        public System.Web.HttpPostedFile postedFile;
    }

Как мне справиться с этим?Можно ли использовать httpPostedFile?Могу ли я преобразовать SPFile в httpPostedFile?

во время моего обновления

Ответы [ 2 ]

2 голосов
/ 06 декабря 2011

Способ, которым мы обрабатываем это, когда файл загружен, он сохраняется в известной директории с временным именем файла на основе GUID. Временное имя файла и оригинальное загруженное имя файла затем сохраняются в списке FileDetails в нашем классе. Наш класс затем сериализуется в ViewState страницы, но он также может храниться в состоянии сеанса (я бы не рекомендовал этого, если ваши пользователи открывают несколько страниц или входят в систему на нескольких компьютерах с одним и тем же именем входа).

Когда нажата кнопка сохранения, мы перебираем список FileDetails в нашем классе, извлекаем каждый из временного каталога и отправляем его на sharepoint (или куда он должен идти).

Мы также привязываем загруженные файлы к сетке, чтобы пользователь мог видеть список загруженных файлов и, если он хочет удалить один, он может установить флажок в сетке (удален), который мы проверяем перед обработкой файлов .

Обратите внимание, что этот процесс также может поддерживать автоматическое разархивирование заархивированных файлов: если вы обнаружите, что загруженный файл заархивирован, вы можете разархивировать каждый из файлов во временный каталог и добавить запись для каждого из них в список файлов в учебный класс. Это может значительно сэкономить время ваших пользователей.

1 голос
/ 06 декабря 2011

Хранение документов в памяти не является эффективным использованием оперативной памяти веб-сервера. Гораздо лучше хранить его либо во временной базе данных, либо на файловом ресурсе ...

Однако я бы не советовал писать это самостоятельно, если вы можете избежать этого. Попробуйте взглянуть на RadUpload от Telerik, они даже дадут вам 60-дневную пробную версию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...