Загруженный файл JPEG не распознается на iPhone - PullRequest
0 голосов
/ 01 октября 2019

Когда я загружаю файл JPEG из приложения ASP Web Forms, используя следующий код, изображение не отображается, когда приложение запускается из браузера (Safari) на iPhone 5 - только экран, предлагающий открыть файл в Dropbox,При использовании Opera загрузка вообще не появляется. Похоже, что IOS не распознает загруженный файл как отображаемое изображение. Загрузка происходит, как и ожидалось, с рабочего стола Windows.

string sDownloadFile = Session["strImagePath"].ToString();
string sFileName = Session["sFileName"].ToString();
Response.ContentType = "application/jpeg";
Response.AppendHeader("Content-Disposition", "attachment; filename='" + sFileName + "'");
Response.TransmitFile(sDownloadFile);
Response.End();

1 Ответ

0 голосов
/ 09 октября 2019

Используя приведенный ниже код (BinaryWrite, а не TransmitFile), я обнаружил, что iPhone будет распознавать загруженный файл как JPEG.

           string sFileName = Session["sFileName"].ToString();// Original file name// System.IO.Path.GetFileName(sDownloadFile);
           byte[] fileBytes = System.IO.File.ReadAllBytes(sDownloadFile);
           SendFileBytesToResponse(fileBytes, sFileName);

private static void SendFileBytesToResponse(byte[] bytes, string sFileName)
       {
           if (bytes != null)
           {
               string downloadName = sFileName;
               System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
               response.Clear();
               response.AddHeader("Content-Type", "application/jpeg");
               response.AddHeader("Content-Disposition",
                                  "attachment; filename=" + downloadName + "; size=" + bytes.Length.ToString());
               response.Flush();
               response.BinaryWrite(bytes);
               response.Flush();
               response.End();
           }           
       }
...