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