我想在类文件中保存一个文件。 我正在写一个附件用户控件。
通过上传控件上传文件后,我想在SharePoint中上传文件之前将其保存在类中。
用户可以上传多个文件。
只有在用户点击save
按钮之后,我才会将所有文件和其他数据,文件保存到SharePoint以及其他数据保存到数据库。
这是我的班级
public class Document :
{
public string documentName, documentPath, spServerURL, spDocumentLibraryURL;
public DateTime lodegmentDate;
public System.Web.HttpPostedFile postedFile;
}
我该如何处理?可以使用httpPostedFile
吗?在我的更新中,我可以将SPFile
转换为httpPostedFile
吗?
答案 0 :(得分:2)
我们处理这个问题的方法是上传文件时,它会保存在一个知名目录中,并带有一个基于GUID的临时文件名。然后将临时文件名和原始上载文件名存储在我们类中的FileDetails列表中。然后我们的类被序列化到页面的ViewState,但它也可以存储在会话状态(如果用户打开多个页面或使用相同的登录名登录到多台计算机,我建议不要这样做。)
当按下保存按钮时,我们遍历我们类中的FileDetails列表,从临时目录中检索每个文件,并将其发送到sharepoint(或者它需要去的任何地方)。
我们还将上传的文件绑定到网格,以便用户可以看到上传文件的列表,如果他们想删除文件,他们可以在处理文件之前检查我们检查的网格(已删除)中的框
请注意,此过程还可以支持自动解压缩压缩文件:如果您检测到上传的文件已压缩,则可以将每个文件解压缩到临时目录,并为每个文件添加一个条目到类。这可以为您的用户节省大量时间。
答案 1 :(得分:1)
将文档保存在内存中并不能有效地使用webserver ram。 将它存储在临时数据库或文件共享中要好得多......
但是,如果你能避免,我不建议你自己写这个。 尝试查看Telerik的RadUpload控件,他们甚至会给你60天的试用期。