Saltar al contenido

Sharepoint: obtenga los archivos adjuntos de la API REST

Solución:

No hay suficiente reputación para agregar un comentario, pero DacrioS lo ha descifrado. Tengo una instalación local de Sharepoint 2013 y no pude hacer que aparezcan los archivos adjuntos cuando uso la interfaz _api / web REST. Hasta que leí este comentario: “Intente agregar archivos adjuntos a la selección”.

Déjame ser claro:

Esto no funciona
_api / web / lists / getbytitle (‘MYLIST’) / items? $ filter = Id% 20eq% 202451 & $ select = AttachmentFiles & $ expand = AttachmentFiles

Esto FUNCIONA
_api / web / lists / getbytitle (‘MYLIST’) / items? $ filter = Id% 20eq% 202451 & $ select = Attachments, AttachmentFiles & $ expand = AttachmentFiles

Observe que la ÚNICA diferencia entre las dos consultas es la inclusión de archivos adjuntos en la instrucción $ select. Agregue eso y booya: obtengo archivos adjuntos.

Necesitas $select y $expand los AttachmentFiles propiedad para los elementos de su lista si desea seleccionar muchos elementos de la lista.

_api/lists/getByTitle('MyList')/items?$select=AttachmentFiles,Title&$expand=AttachmentFiles

Luego puede obtener la información del archivo adjunto (si existe) en el AttachmentFiles propiedad de su elemento de lista que será una matriz de objetos AttachmentFile.

Le sugiero que solo consulte los valores de retorno en sus herramientas de desarrollo para inspeccionar la estructura con algo como:

$.getJSON("/_api/lists/getByTitle('MyList')/items?$select=AttachmentFiles,Title&$expand=AttachmentFiles", 
    function(data) { console.log(data) })

Pero puede hacer algo como recuperar la URL del archivo con:

data.value[0].AttachmentFiles[0].ServerRelativeUrl

Si su elemento de lista no tiene ningún archivo adjunto, el AttachmentFiles será una matriz vacía.

Parece que no puedo conseguir el $filter operador para trabajar con el Attachments propiedad para filtrar los resultados solo para aquellos elementos con archivos adjuntos; tal vez alguien más tenga experiencia en ponerlo en funcionamiento y le gustaría agregarlo aquí =)

Puede obtener archivos adjuntos usando

var url = url + "/_api/web/lists/getbytitle('ListTitle')/items(1)/AttachmentFiles";

$.ajax({
    url: url,
    accepts: {
        json: "application/json;odata=verbose"
    },
    method: "GET",
    success: onQuerySuccess,
    error: onQueryError
});

function onQuerySuccess(data) {
    if (data) {
        $.each(data.d.results, function () {
            // do something
            this.ServerRelativeUrl;
        });
    }
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *