开发者

Get Sharepoint server documents in web application

I want to get the sharepoint documents in webapplication. This is my code.

try
    {
        string sharePointURL = "http://<ipAddress>:<port>/<websiteName>/default.aspx";
        SPSite site = new SPSite(sharePointURL); //Error on this line.....

        SPWeb web = site.OpenWeb();
        web.AllowUnsafeUpdates = true;

        string strContentType = "";
        // docLib is the name of document library
        SPFolder folder = web.GetFolder("docLib");

        SPFileCollection files = folder.Files;

        string fileName = "temp.xls";
        //"docLib" is name of document library and testFile.doc is the name of file
        string url = sharePointURL + "/" + "docLib" + "/" + fileName;

        SPFile tempFile = web.GetFile(url);

        //Get the extension of File.
        string[] fext = fileName.Split('.');
        byte[] obj = (byte[])tempFile.OpenBinary();
        // Get the extension of File to determine the file type
        string casestring = "";
        if (fext.Length > 1)
        {
            casestring = fext[fext.Length - 1];
        }
        //set the content type of file according to extension
        switch (casestring)
        {
            case "txt":
                strContentType = "text/plain";
                break;
            case "htm": strContentType = "text/html";
                break;
            case "html": strContentType = "text/html";
                break;
            case "rtf": strContentType = "text/richtext";
                break;
            case "jpg": strContentType = "image/jpeg";
                break;
            case "jpeg": strContentType = "image/jpeg";
                break;
            case "gif": strContentType = "image/gif";
                break;
            case "bmp": strContentType = "image/bmp";
                break;
            case "mpg": strContentType = "video/mpeg";
                break;
            case "mpeg": strContentType = "video/mpeg";
                break;
            case "avi": strContentType = "video/avi";
                break;
            case "pdf": strContentType = "application/pdf";
                break;
            case "doc": strContentType = "application/msword";
                break;
            case "dot": strContentType = "application/msword";
                break;
            case "csv": strContentType = "application/vnd.msexcel";
                break;
            case ".xls": strContentType = "application/vnd.msexcel";
                break;
            case ".xlt": strContentType = "application/vnd.msexcel";
                break;
            default: strContentType = "application/octet-stream";
                break;
        }
        Response.ClearContent();
        Response.ClearHeaders();
        Response.AppendHeader("Content-Disposition",
                 "attachment; filename= " + fileName);
        Response.ContentType = strContentType;
        //Check that the client is connected and has 
        //not closed the connec开发者_开发技巧tion after the request
        if (Response.IsClientConnected)
            Response.BinaryWrite(obj);
        Response.Flush();
        Response.Close();
    }
    catch (Exception ex)
    {
       string exMessage = ex.Message;
    }

I am getting error on this line:

SPSite site = new SPSite(sharePointURL);

The error message is:

"The web application at [URL] could not be found. Verify that you have typed the url correctly. If the url should be serving existing content, the system administrator may need to add a new request url mapping to the intended application."

Please let me know how to resolve it.

Thanks.


try this snippet (adapt it to your case):

using Microsoft.SharePoint; 
using Microsoft.SharePoint.Utilities; 
using Microsoft.SharePoint.WebPartPages; 
using Microsoft.SharePoint.WebControls;

try
{
    int flag=0;
    SPSite site = new SPSite(sharePointURL); 
    SPWeb web = site.OpenWeb(); 
    web.AllowUnsafeUpdates=true;

    string strContentType=""; 
    // docLib is the name of document library
    SPFolder folder = web.GetFolder("docLib");

    SPFileCollection files=folder.Files;
    //"docLib" is name of document library and testFile.doc is the name of file
    string url=sharePointURL+"/"+"docLib"+"/"+"testFile.doc"

    SPFile tempFile = web.GetFile(url);

    //Get the extension of File.
    string []fext=this.filename[0].Split('.');
    byte []obj=(byte[])tempFile.OpenBinary();

    // Get the extension of File to determine the file type
    string casestring="";
    if(fext.Length>1)
    {
        casestring= fext[fext.Length-1];
    }
    //set the content type of file according to extension
    switch(casestring)
    {
        case "txt": 
            strContentType = "text/plain";
            break;
        case "htm" : strContentType = "text/html";
            break;
        case "html" : strContentType = "text/html";
            break;
        case "rtf" : strContentType = "text/richtext";
            break;
        case "jpg" : strContentType = "image/jpeg";
            break;
        case "jpeg": strContentType = "image/jpeg";
            break;
        case "gif" : strContentType = "image/gif";
            break;
        case "bmp" : strContentType = "image/bmp";
            break;
        case "mpg" : strContentType = "video/mpeg";
            break;
        case "mpeg": strContentType = "video/mpeg";
            break;
        case "avi" : strContentType = "video/avi";
            break;
        case "pdf" : strContentType = "application/pdf";
            break;
        case "doc" : strContentType = "application/msword";
            break;
        case "dot": strContentType = "application/msword";
            break;
        case "csv" : strContentType = "application/vnd.msexcel";
            break;
        case ".xls": strContentType = "application/vnd.msexcel";
            break;
        case ".xlt": strContentType = "application/vnd.msexcel";
            break;
        default : strContentType = "application/octet-stream";
            break;
    }
    Response.ClearContent();
    Response.ClearHeaders();
    Response.AppendHeader("Content-Disposition", 
             "attachment; filename= "+filename[0]);
    Response.ContentType = strContentType;
    //Check that the client is connected and has 
    //not closed the connection after the request
    if(Response.IsClientConnected)
        Response.BinaryWrite(obj);
    Response.Flush();
    Response.Close();
}
catch(Exception ex)
{
  //... do some logging here...
}

source: Uploading, Deleting, and Downloading a File from SharePoint 2003 Document Library

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜