2014-11-18 4 views
0

У меня есть веб-сайт, который посещается в основном с iPhone. На моих страницах пользователи имеют возможность получить купоны на скидку. Мне нужно реализовать функцию, которую пользователь может использовать для сохранения купонного изображения на своем устройстве.Сохранить как изображение на iPhone

Я создал контроллер, который возвращает файл клиенту, но, к сожалению, браузер просто показывает изображение, потому что он знает, тип контента, который image/png

Есть ли способ, чтобы сделать iPhone сохранить изображение напрямую?

Это мой контроллер код действия

[AllowAnonymous] 
public ActionResult SaveAsImage(string code, int campaign) { 
    string theUrl = string.Format(Constants.DEFAULT_CONSUME_URL, code, campaign); 
    var barcodeWriter = new BarcodeWriter() { 
     Format = BarcodeFormat.QR_CODE, 
     Options = new EncodingOptions { 
      Height = 250, 
      Width = 250, 
      Margin = 0 
     } 
    }; 
    using (var bitmap = barcodeWriter.Write(theUrl)) { 
     using (var stream = new MemoryStream()) { 
      bitmap.Save(stream, ImageFormat.Png); 
      var cd = new System.Net.Mime.ContentDisposition { 
       // for example foo.bak 
       FileName = "coupon.png", 
       // always prompt the user for downloading, set to true if you want 
       // the browser to try to show the file inline 
       Inline = false, 
      }; 
      Response.AppendHeader("Content-Disposition", cd.ToString()); 
      return File(stream.ToArray(), "image/png"); 
     } 
    } 
} 
+0

Короткий ответ, НЕТ. Вам нужно будет указать пользователю сохранить изображение. Но вы можете использовать файл Passbook, который может создать ваш сервер, чтобы пользователь мог сохранить купон. Вы можете узнать больше о Passbook здесь: https://developer.apple.com/passbook/ – rckoenes

+0

Зачем вам не использовать Passbook;), но я думаю, вам не повезло и не может заставить загрузить. Я просто сделал простой код Passbook на основе примера Apple: https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/PassKit_PG/Chapters/YourFirst.html#//apple_ref/doc/uid/ TP40012195-СН2-SW1 – rckoenes

ответ

1

Короткий ответ, НЕТ.

Вам необходимо указать пользователю, чтобы сохранить изображение. Но вы можете использовать файл Passbook, который может создать ваш сервер, чтобы пользователь мог сохранить купон.

Вы можете прочитать больше о PassBook здесь: Passbook Руководство по программированию яблоки простой пример PassBook: Building Your First Pass

Смежные вопросы