none
Relacionar páginas con ficheros adjuntos RRS feed

  • Pregunta

  • Hola a todos,

     

    Necesito de vuestra ayuda y experiencia. Tengo un PageLayout que tendrá un campo Attachments. Este campo unicamente muestra una cuadro de texto (donde irá la ruta del fichero) y un botón que será el Browse.

     

    Asociamos nuestro Layout a la página que vamos a crear. Nuestro Site es del tipo Module Site (Documents, Images, Pages, Workflows Task). Utilizando el siguiente código C# intentamos realizar un Attachments y relacionar dicho fichero a la página. El fichero a adjuntar fisicamente se crea en la Folder de Destino (en este caso "Attachments"). Sin embargo, realizamos un oCurrentPage.Attachments.AddNow(oFile.Name, oFile.OpenBinary()); oCurrentPage.Update();

     

    Donde: oCurrentePages es un objeto del tipo SPList oPages = oWeb.Lists["Pages"]; para relacionar el fichero adjunto con la página actual.

     

    Y no he podido lograr relacionar el fichero con la página. Cuando hago un

    Response.Write("Attachments: " + oCurrentPage.Attachments.Count.ToString()); para ver la cantidad de elementos de la página me muestra 0 (cero).

     

    Por favor, si alguien ha podido realizar este procedimiento le agradeceré mucho su ayuda y colaboración.

     

    Atte.

    César

     

    PD: Adjunto código fuente del procedimiento.

     

    /*************************************************************************************************************************************/

    //Is the file valid?

    if (!uplAttachment.HasFile)

    return;

    //1. Get the current page.

    SPListItem oCurrentPage = GetCurrentPage();

    if (oCurrentPage == null)

    return;

    //2. Get the Attachment folder.

    SPWeb oWeb = SPContext.Current.Web;

    SPFolder oFolder = oWeb.Folders["Attachments"];

    string Filename = Path.GetFileName(uplAttachment.FileName);

    Hashtable FileAttributes = new Hashtable();

    FileAttributes.Add("Title", "TEST");

    //3. Upload the file to the Files collection.

    SPFile oFile = oFolder.Files.Add(Filename, uplAttachment.FileBytes, FileAttributes, true);

    oFolder.Update();

    //4. Now add this file to the Attachements collection.

    oCurrentPage.File.CheckOut();

    oCurrentPage.Attachments.AddNow(oFile.Name, oFile.OpenBinary());

    oCurrentPage.Update();

    oCurrentPage.File.CheckIn("");

    oCurrentPage.File.Publish("");

    //Redirect to the same page so we can see the updates in the page.

    Response.Redirect(Request.Url.ToString());

     

    /*************************************************************************************************************************************/

    viernes, 22 de febrero de 2008 10:26