当前位置: 首页 > 知识库问答 >
问题:

下载图片asp.netmvc

华凡
2023-03-14

您好,我有一个按钮,当我单击它时,此函数称为:

public async Task<IActionResult> QrCode(int Id)
        {
            var model = await context.Files.Where(x => x.Id == Id).FirstOrDefaultAsync();
            string qrUrl = CreateQrLink(Id);
            FileDetailsViewModel fileDetails = new FileDetailsViewModel
            {
                Id = model.Id,
                Name = model.Name,
                Author=model.Author,
                Description=model.Description,
                Genre=model.Genre,
                PublishedOn = model.PublishedOn,
                QrUrl = qrUrl
            };
            return View(fileDetails);
          
        }

这里是CreateQrLink函数

  public string CreateQrLink(int Id)
        {
            var baseUrl = string.Format("{0}://{1}{2}",Request.Scheme, Request.Host, Url.Content("~"));
            QRCodeGenerator QrGenerator = new QRCodeGenerator();
            var url = Url.Action("DownloadFileFromFileSystem", "Files", new { id = Id });
         
            QRCodeData QrCodeInfo = QrGenerator.CreateQrCode(baseUrl+url, QRCodeGenerator.ECCLevel.Q);
            QRCode QrCode = new QRCode(QrCodeInfo);
            
            Bitmap QrBitmap = QrCode.GetGraphic(60);
            byte[] BitmapArray;
            using(MemoryStream ms = new MemoryStream())
            {
                QrBitmap.Save(ms, ImageFormat.Png);
                BitmapArray = ms.ToArray();
            }
            string qrUri= string.Format("data:image/png;base64,{0}", Convert.ToBase64String(BitmapArray));
            return qrUri;
        }

这是我想通过点击下载QrCode按钮从这个视图下载图像的视图,我如何实现它?我不在数据库中保存QrLink我应该保存它还是其他什么?我想从src=Model获取照片。QrUrl

@model FileDetailsViewModel
@{ 
    ViewBag.Title = "Qr Code";
}
<div class="row justify-content-center m-3">
    <div class="col-sm-8">
        <div class="card">
            <div class="card-header">
                <h1>@Model.Name</h1>
                <h2>Product Id: @Model.Id</h2>
            </div>
            <div class="card-body text-center">
                <img style="width:450px;height:450px;" src="@Model.QrUrl" />
               
            </div>
            <div class="card-footer text-center">
                <a asp-controller="files" asp-action="Details" asp-route-id="@Model.Id" class="btn btn-primary">Back</a>
                <a href="#" class="btn btn-success">Download QrCode</a>
            </div>
        </div>
    </div>
</div>

共有2个答案

章哲茂
2023-03-14

下面是一个简单的解决方案add download=“下载文件的名称”href=“图像的url”

<a download="@Model.Name" style="width:150px;" href="@Model.QrUrl"class="btn btn-success">Download</a>
温开畅
2023-03-14

返回类型应为FileResult,如下所示。

string filePath = string.Format("data:image/png;base64,{0}", Convert.ToBase64String(BitmapArray))

string contentType = ImageFormat.Png.ToString();

FileResult qrUri= this.File(filePath, contentType);
return qrUri;
 类似资料:
  • 问题内容: 我知道保护图像下载的最佳方法不是一开始就将其放在互联网上。 我假设没有100%防止图片下载,并且如果用户可以在Internet上看到图片,那么他只要有一点经验就可以找到下载图片的权限。 我知道透明或覆盖图像,或者使用CSS属性来保护它并防止右键单击下载,但是在那里 其他使图片下载复杂化并因此阻止大多数用户下载图片的方式? 这是简单的代码开头: 问题答案: 根本没有办法阻止用户执行特定任

  • Scrapy提供了一个 item pipeline ,来下载属于某个特定项目的图片,比如,当你抓取产品时,也想把它们的图片下载到本地。 这条管道,被称作图片管道,在 ImagesPipeline 类中实现,提供了一个方便并具有额外特性的方法,来下载并本地存储图片: 将所有下载的图片转换成通用的格式(JPG)和模式(RGB) 避免重新下载最近已经下载过的图片 缩略图生成 检测图像的宽/高,确保它们满

  • 问题内容: 现在我有一个,我想将其另存为PNG。我可以使用所有那些花哨的复杂文件系统API来做到这一点,但我真的不喜欢它们。 我知道上面是否有带有属性的链接: 如果用户单击该文件,它将下载文件。因此我想到了这个: 但是,它似乎不起作用。它是否必须由用户操作触发?否则为什么它不起作用? 问题答案: 问题在于jQuery不会触发元素的本机事件,因此不会发生导航(的正常行为),因此您需要手动执行操作。对

  • 图片下载和存取的简单demo。实现同步和异步两种下载方式。并且将下载好的图片保存在Document,然后进行读取显示。 [Code4App.com]

  • 从互联网下载图片,并显示。下载图片过程中显示进度条。支持图片缩放,运用了ASI、SDWebImage。支持图片缓存。 [Code4App.com]

  • 问题内容: 我在网络应用程序中生成普通链接,例如: 当我单击链接时,它将在新页面中显示图片。如果要保存图片,则需要右键单击它并选择“另存为” 我不希望这种行为,我想在单击链接时弹出一个下载框,这可能仅适用于html或javascript吗?怎么样? 如果不是,我想我将不得不编写一个download.php脚本,并以文件名作为参数将其调用到href中…? 问题答案: