Consulta sobre error de Error while loading file sourceFilename from storage: The document appears to be corrupted and cannot be loaded

Buenas,

Estoy recibiendo el error siguiente cuando quiero convertir docx a html.

Resultado de la promesa: Error while loading file ‘sourceFilename’ from storage: The document appears to be corrupted and cannot be loaded.

La primera imagen es la api intermedia que se genero, para que luego llame a su api.

En la segunda imagen muestro como estoy llamando a la api desde sharepoint.

Y en esta imagen como envio el archivo desde el html:

A que se puede deber esto?

Aguardo sus comentarios.

Saludos!
image.png (59.2 KB)
image.png (28.8 KB)
image.png (13.7 KB)

@jonaliboa.ext Unfortunately, it is not quite clear how to reproduce the problem on our side. Do you use Aspose.Words Cloud API?

Si uso la API aspose cloud. Puede ser que sea problema del header? es necesario enviarlo con multipart/form-data el content type?

Buenas alguna novedad de mi consulta? Muchas gracias!

@alexey.noskov

Primero, necesitas enviar una solicitud utilizando PUT, no POST. En cuanto a los encabezados, debes pasar estos encabezados.
-H “Authorization: Bearer ############”
-H “Content-Type: multipart/form-data”

Si deseas revisar todas las opciones sobre cómo convertir un documento, puedes consultar este enlace: Aspose.Words Cloud - API References

Buenas, claro pero no estamos llamando directo a la Api de aspose, si no que generamos una Api intermedia que se conecta por C# tal cual como muestro en la imagen, te adjunto el código. Vos decís que si o si el method es PUT desde acá?

public class ConvertController : ControllerBase
{
[EnableCors]
[HttpPost(“convertDocument”)]
//[Consumes(“multipart/form-data”)]

public async Task<IActionResult> Post(IFormFile rutaDocument, string ClientId, string ClientSecret)
{
    try
    {
        var config = new Configuration
        {
            ClientId = ClientId,
            ClientSecret = ClientSecret
        };
        var wordsApi = new WordsApi(config);
       

        using (var stream = rutaDocument.OpenReadStream())
        {
           var request = new ConvertDocumentRequest(stream, "html", null, rutaDocument.Name);
           var convert = await wordsApi.ConvertDocument(request);
           
           Console.Write(stream.Length);

           byte[] buffer = new byte[convert.Length];
           var result = convert.Read(buffer, 0, buffer.Length);

           string htmlContent = System.Text.Encoding.UTF8.GetString(buffer);

           //Console.WriteLine("ok");
           //Console.WriteLine("Contenido Docx:" + htmlContent);
            
           return Ok(htmlContent);
        }
    }
    catch (Exception err)
    {
        return BadRequest(err.Message);
    }
}

}

Después desde SharePoint consumo la api intermedia, pero el inconveniente se produce directamente desde Postman, con los documentos .Doc funcionan, pero con el Docx me da ese error.

Probando de forma local funciona perfecto para ambos tipos de documentos.

Te adjunto tambien lo que me arroja con metodo PUT que recien lo cambie desde la api intermedia y lo ejecute desde postman:

image.png (46,4 KB)
image.png (52,0 KB)

Lo siento, pero no puedo entender qué método específico estás llamando en la API desde Postman, porque la dirección está borrosa, ¿funciona el código C# que proporcionaste? En caso afirmativo, describa específicamente qué método API no funciona como esperaba.

Te comento desde SharePoint directamente no podiamos consumir la API de Aspose, por problemas de CORS, por lo tanto hicimos una API Intermedia para permitir los dominios diferentes. La Api intermedia funciona correctamente local (Debug - El codigo c# funciona correctamente) pero esta misma se encuentra publicada y al consumirla me arroja ese inconveniente de documento corrupto.

los parámetros que envío son ClientId, ClientSecret y rutaDocument que es el archivo docx o doc.

image.png (68,3 KB)

Los documentos doc no me arroja error de archivo corrupto, pero me los convierte mal, eso entiendo que es un ajuste a realizar. Pero los documentos Docx directamente me arroja corruptos.

Veo. ¿Podría compartir un documento de muestra que no funcione de su lado? Lo intentaré por mi parte; tal vez sea un problema relacionado con el documento.

Dale perfecto, te comparto un documento de ejemplo:

20190108095434005.docx (71,9 KB)

Recordar que de forma local en el debug de la api intermedia, ahí si funciona.

Por favor mantener la confidencialidad de los documentos.

Muchas gracias!

@yaroslaw.ekimov Buen dia!! quería saber si habias podido revisar el documento que te pase y si pudiste ejecutar alguna prueba? Nos es de mucha ayuda porque estamos queriendo comprar aspose.words.cloud, ya Errepar cuenta con Aspose.Words y queriamos mejorarlo.

Muchas gracias!

Sí, ejecuté las pruebas con su documento y todo funcionó sin errores. ¿Es posible que se pierda parte del archivo al enviarlo? ¿Está disponible su API intermedia externamente? ¿Puedo tomar la dirección de sus capturas de pantalla y tratar de enviar una solicitud a través de Postman?

Excelente, que por lo menos el documento no es. Si tal cual por favor realiza las pruebas que necesites a esa API Externa que es la api intermedia, me serviría de mucho que realices la prueba desde postman.

Aguardo tus comentarios, muchas gracias!

¿Puedo pedirle que me envíe por mensajes privados la URL completa para el envío, incluyendo el clientId y el clientSecret?

Excelente, que por lo menos el documento no es. Si tal cual por favor realiza las pruebas que necesites a esa API Externa que es la api intermedia, me serviria de mucho que realices la prueba desde postman.

Aguardo tus comentarios, muchas gracias!