2011-12-05 11 views
1

ファイルをクラスファイルに保持したいと考えています。 添付ファイルのユーザーコントロールを作成しています。クラス内のファイルを保持する最善の方法

アップロードコントロールにより、ファイルをアップロードした後、私はSharePointでファイルをアップロードする前に、クラスでそれを保持したいと思います。

ユーザーは複数のファイルをアップロードできます。

ユーザーがsaveボタンをクリックした後で、すべてのファイルやその他のデータ、ファイルをSharePointに保存し、その他のデータをデータベースに保存します。ここで

は、私のクラスは、私はそれをどのように処理するかを

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

のですか? httpPostedFileを使用しても問題ありませんか?更新中にSPFilehttpPostedFileに変換できますか?

+0

「ファイルを保持する」とはどういう意味ですか? – Oded

+0

あなたはいくつかのファイルを保存することを計画している場合は、複数のHttpPostedFileのインスタンス(またはファイルを保持できる他のオブジェクト) – Shai

+0

を使用する必要があります私は 'InputStream'そのセッションに格納されて好きなので、読まないと思います代わりにその 'Document'に格納する' byte [] 'にストリームしてください。 –

答えて

1

文書をメモリに保存することはウェブサーバーラムの効率的な使用ではありません。 テンポラリデータベースまたはファイル共有ディレクトリに保存するほうがはるかに良いです。

しかし、これを避けることができれば、これを書くことはお勧めしません。 TelerikのRadUploadコントロールを見てみると、60日間の試用版も提供します。私たちはこれを処理

+0

ありがとうございました!!! – kevin

2

方法は、ファイルがアップロードされている場合、それはGUIDに基づいて、一時的なファイル名でよく知られたディレクトリに保存されています。一時ファイル名とアップロードされた元のファイル名は、クラス内のFileDetailsのリストに格納されます。その後、私たちのクラスはページのViewStateにシリアル化されますが、セッション状態で保存することもできます(ユーザーが複数のページを開いたり、複数のコンピュータに同じログインでサインオンする場合にはこれをお勧めしません)。

保存ボタンを押すと、クラス内のFileDetailsのリストをループし、一時ディレクトリから各ファイルを取り出し、sharepoint(またはどこに行く必要があるか)に送信します。

また、アップロードされたファイルをグリッドにバインドして、アップロードしたファイルのリストを表示できるようにします。削除する場合は、グリッド内のボックスをチェックして削除しますファイル。

このプロセスでは、ZIPファイルの自動解凍もサポートされています。アップロードされたファイルが圧縮されていることが検出された場合は、各ファイルを一時ディレクトリに解凍し、クラス。これは、ユーザーの時間を大幅に節約できます。

+0

HttpPostedFileの代わりにStreamを使用できますか? – kevin

+0

セッション状態に格納されるクラスには、StreamまたはHttpPostedFileを格納しないでください。ファイルをWebサーバーのディスクに抽出すれば、はるかに簡単な時間が得られます。 –

+0

ありがとう、私は今しようとします。 – kevin

関連する問題