8

我正在使用 Visual WebPart,我想将图像从 FileUpload 控件上传到 SharePoint 列表。这是我正在使用的代码,但我无法让它工作,(标题、prodnum、颜色等都在工作,但不是图像)。我还安装了SparQube

这是我的列表视图: 图片

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;
    }

}
4

3 回答 3

1

您确定 SPList 已启用附件上传吗?

尽管列表无法容纳项目附件,但我已经体验到正常的功能区按钮没有变灰。

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

于 2012-11-29T10:13:47.327 回答
1

您可以使用以下方法将文件作为流直接从文件上传添加到特定网站,然后将文件路径添加到列表中,如下例所示,

SPContext.Current.Web.Files.Add(String.Concat(SPContext.Current.Web.Site.RootWeb.Url, path), stream, true);

path 是图像的相对路径。在用户案例文件名中。 流可以FileUpload.FileContent在文件上传控制中使用

然后将此路径添加到列表中,如下所示。

listItem["Image"] = path;

这适用于所有浏览器。

于 2012-11-29T04:22:10.693 回答
0

看看这个问题:https ://sharepoint.stackexchange.com/questions/49481/exception-when-adding-attachment/49485

当您在标准编辑/添加页面中使用 FileUpload 控件时,会出现一些问题。

于 2012-11-28T11:12:48.873 回答