我开发了一个自定义sharepoint字段,用于上传特定文档库中的文件,并在将其作为字段值存储后存储该文件的URL。
问题是上传的文件在我想要的库中存储了两次,另一个作为附件与列表中具有该字段的项目存储。如何避免将文件作为附件保存?
谢谢
修改:以下是代码:
public override void UpdateFieldValueInItem()
{
string name="";
if(fileUploader.PostedFile.FileName!="")
{
//method to store the posted file in a certain library
string x= UploadFile(this.Web, fileUploader.PostedFile.FileName,fileUploader.FileName,out name);
//Stores The URL and the name of the file
SPFieldUrlValue urlValue = new SPFieldUrlValue() {
Description=name,
Url=x
};
this.Value = urlValue;
this.ItemFieldValue = urlValue;
}
}
UploadFile方法
string UploadFile(SPWeb web,string path,string fileName,out string name)
{
UploadField uf = (UploadField)base.Field;
SPList docsList = web.Lists[uf.StoreList];
SPFolder folder = web.GetFolder(docsList.RootFolder.UniqueId);
byte[] contents = File.ReadAllBytes(path);
SPFile file= folder.Files.Add(folder.Url + "/" + fileName, contents);
//folder.Update();
SPListItem item = docsList.Items[file.UniqueId];
name = item["Name"].ToString();
return getItemURL(item);
}
答案 0 :(得分:0)
从代码中我可以看到,您正在上传到库中,但只是确保没有回发。 我建议您再次手动创建链接。 它主要是形式 // 希望这有帮助
请访问SharePointSchool.net以开始使用SharePoint 2010