我正在使用Visual WebPart,我想将文件从FileUpload控件上传到SharePoint列表。这是我正在使用的代码,但我无法让它工作,(标题,prodnum,颜色等工作,但不是图像)。我还安装了SparQube。
这是我的ListView: Image http://i47.tinypic.com/x5z2v7.jpg
protected void Button_Save_Click(object sender, EventArgs e)
{
SPSite currentSite = SPContext.Current.Site;
SPList myList = currentSite.RootWeb.Lists.TryGetList("SharePointDatabase");
try
{
if (myList != null && FileUpload_Pic.PostedFile != null && FileUpload_Pic.HasFile)
{
SPListItem listItem = myList.Items.Add();
listItem["Title"] = TextBox_Name.Text;
listItem["ProductNumber"] = TextBox_ProdNum.Text;
listItem["Color"] = TextBox_Color.Text;
listItem["ListPrice"] = TextBox_ListPrice.Text;
listItem["MoreInformation"] = TextBox_MoreInfo.Text;
string fileName = Path.GetFileName(FileUpload_Pic.PostedFile.FileName);
listItem["Image"] = fileName;
listItem.Update();
TextBox_Search.Text = string.Empty;
TextBox_Name.Text = string.Empty;
TextBox_MoreInfo.Text = string.Empty;
TextBox_ProdNum.Text = string.Empty;
TextBox_Color.Text = string.Empty;
TextBox_ListPrice.Text = string.Empty;
Label_Exception.Text = "Saved to Database list.";
Dispose();
}
}
catch (Exception x)
{
Label_Exception.Text = x.Message;
}
}
答案 0 :(得分:1)
您可以使用以下方法将文件直接从文件上传添加到特定网络,然后将文件路径添加到列表中,如下例所示,
SPContext.Current.Web.Files.Add(String.Concat(SPContext.Current.Web.Site.RootWeb.Url, path), stream, true);
路径是图像的相对路径。用户案例文件名中的。
流可以在文件上传控件中使用FileUpload.FileContent
然后将此路径添加到列表中,如下所示。
listItem["Image"] = path;
这适用于所有浏览器。
答案 1 :(得分:1)
您确定SPList已启用Atachment上传吗?
虽然列表无法保存迭代匹配,但我已经明白普通功能区按钮不会显示为灰色。
SPList list = new SPList(); // Sample
list.EnableAttachments = false; //set
bool attachmentsAllowed = list.EnableAttachments; //get
什么类型的字段是“图像”?这不是附件文件夹...
保存图像的另一种方法是将其上传到库并使用“超链接”字段。
将此用作帮助:http://www.sharepoint-tips.com/2007/10/code-practices-gettingsetting-values.html
答案 2 :(得分:0)
查看此问题:https://sharepoint.stackexchange.com/questions/49481/exception-when-adding-attachment/49485
当您在标准编辑/添加页面中使用FileUpload控件时,存在一些问题。