【问题标题】:SPException: It may refer to a nonexistent file or folder, or refer to a valid file or folder that is not in the current WebSPException: 它可能引用了一个不存在的文件或文件夹,或者引用了一个不在当前 Web 中的有效文件或文件夹
【发布时间】:2015-02-10 06:11:01
【问题描述】:

我在尝试将文档上传到我的文档库时遇到上述异常。这是我的代码:

spFile = spWeb.Files.Add(
                    docUrl,
                    uploadStream,
                    true, // overwrite or add a new version
                    uploadMessage.Metadata.CheckInComment ?? "", //check-in comment to use when creating the file in the collection. (can't be NULL)
                    false); 

从浏览器手动上传文件但使用 SPWeb.Files.Add 从代码将文件添加到文档库时不会出现此问题。发生上述异常。请注意,Web 应用程序的内容数据库未满或未设置为只读。

【问题讨论】:

    标签: c# sharepoint


    【解决方案1】:

    我会尝试用 powershell 做你正在做的事情,因为在那里输出对象会让你更深入地了解你的问题。

    我会以稍微不同的方式来做这件事,这样我就可以确定文件会准确地转到我想要的位置。

    var sp = new SPSite("http://localhost"); 
    var site = sp.OpenWeb(); 
    var folder = site.GetFolder("Documents"); 
    var files = folder.Files; 
    
    // Opening a filestream 
    var fStream = File.OpenRead("C:MyDocument.docx"); 
    var contents = new byte[fStream.Length]; 
    fStream.Read(contents, 0, (int)fStream.Length); 
    fStream.Close(); 
    
    // Adding any metadata needed 
    var documentMetadata = new Hashtable {{"Comments", "Hello World"}}; 
    
    // Adding the file to the SPFileCollection 
    var currentFile = 
        files.Add("Documents/MyDocument.docx", contents, documentMetadata, true); 
    
    site.Dispose(); 
    sp.Dispose(); 
    

    代码不是我写的,你可以在链接中找到它

    请查看

    http://zimmergren.net/technical/how-to-upload-a-filedocument-using-the-sharepoint-object-model

    干杯 真实的

    【讨论】:

    • DLeh 我没有问新问题,我只是直接问了一些关于这个问题的问题并提供了答案。我不相信你的评论有帮助。 Junaith 带上了你的 cmets 并更新了答案。
    猜你喜欢
    • 2017-10-27
    • 2018-10-22
    • 2010-09-08
    • 2019-03-06
    • 1970-01-01
    • 1970-01-01
    • 2021-06-18
    • 2023-03-29
    • 2015-09-19
    相关资源
    最近更新 更多