【问题标题】:Can't download images if I call the FileResult function from a void如果我从 void 中调用 FileResult 函数,则无法下载图像
【发布时间】:2023-02-09 02:42:26
【问题描述】:

我在 form 中有一个 button 来下载图像。

如果表单调用 FileResult 函数,图像将完美下载。 如果表单调用 void 函数,图像会下载,但出现此错误:

照片无法打开此文件,因为当前不支持该格式,或者文件已损坏

如果我调用这个函数,即调用下载图像的函数,就会出现我向您展示的错误。

public void DescargarImagen(string imagenSelec, string labelOculto)
        {
            try
            {
                Logger.Debug("IMAGEN SELECCIONADA ---> " + imagenSelec);
                Logger.Debug("LABEL OCULTO ---> " + labelOculto);

                switch (labelOculto)
                {
                    case "imgIndividual":
                        Logger.Debug("ENTRA EN IMAGEN INDIVIDUAL");
                        DescargarImagenIndividual(imagenSelec);
                        break;
                    case "FrenteDni":
                        Logger.Debug("ENTRA EN FRENTE DNI");
                        DescargarImagenFrenteDni(imagenSelec);
                        break;
                    case "DorsoDni":
                        Logger.Debug("ENTRA EN DORSO");
                        DescargarImagenDorsoDni(imagenSelec);
                        break;
                }
            }
        catch (Exception ex)
        {
            Logger.Error(ex.Message + " || Funcion: DescargarImagen()");
            ViewData["ERROR"] = ex.Message;
            throw new Exception(ex.Message);
        }
    }

这是下载图片的功能

   public FileResult DescargarImagenIndividual(string imagenSelec)
    {
        string consulta, ruta = "";
        string[] splitImg;

        Logger.Debug("-----------------------------------------------------------------------");
        Logger.Debug("IMAGEN SELECCIONADA LLEGADA DESCARGAR IMAGEN INDIVIDUAL: " + imagenSelec);
        try
        {
            splitImg = imagenSelec.Split("/");
            using MySqlConnection connection = new MySqlConnection(GlobalVariables.connectionSQL);
            connection.Open();
            // /temporal/[img]
            consulta = "SELECT Path FROM Entrega WHERE Path LIKE '%" + splitImg[2] + "%'";
            Logger.Debug("CONSULTA IMAGEN INDIVIDUAL: " + consulta);
            using MySqlCommand cmd = new MySqlCommand(consulta, connection);
            cmd.CommandType = CommandType.Text;
            using MySqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                ruta = "wwwroot/" + reader["Path"].ToString();
            }

            string contentType = "image/png";
            byte[] bites = System.IO.File.ReadAllBytes(ruta);
            Response.Headers.Add("Content-Disposition",
                $"attachment; filename=\"Imagen Entrega.jpg\"");

            Logger.Debug("Descarga imagen individual || DescargarImagenIndividual()");
            return File(bites, contentType);
        }
        catch (Exception ex)
        {
            Logger.Error(ex.Message + " || Funcion: DescargarImagenIndividual()");
            ViewData["ERROR"] = ex.Message;
            throw new Exception(ex.Message);
        }
    }

【问题讨论】:

    标签: c#


    【解决方案1】:
        public FileResult DescargarImagen(string imagenSelec, string labelOculto)
                {
                    FilResult fr = null;
                    try
                    {    
                        switch (labelOculto)
                        {
                            case "imgIndividual":                                
                                return DescargarImagenIndividual(imagenSelec);
                                
                            case "FrenteDni":                                
                                return DescargarImagenFrenteDni(imagenSelec);
    
                            case "DorsoDni":                               
                                return DescargarImagenDorsoDni(imagenSelec);
    
                        }
    
    return fr;
                    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-30
      • 2022-10-01
      • 2017-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多