У меня есть веб-сайт, который посещается в основном с 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");
}
}
}
Короткий ответ, НЕТ. Вам нужно будет указать пользователю сохранить изображение. Но вы можете использовать файл Passbook, который может создать ваш сервер, чтобы пользователь мог сохранить купон. Вы можете узнать больше о Passbook здесь: https://developer.apple.com/passbook/ – rckoenes
Зачем вам не использовать 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