我需要让用户能够从我的网站下载PNG图片。当方法运行时,它会在没有错误的情况下完成,但不会下载任何图像。我不需要用户看到弹出对话框,尽管这肯定很有帮助。这是我现在的代码:
public async Task<IActionResult> DownloadImage(string filename)
{
var path = Path.GetFullPath("./wwwroot/images/school-assets/" + filename);
MemoryStream memory = new MemoryStream();
using (FileStream stream = new FileStream(path, FileMode.Open))
{
await stream.CopyToAsync(memory);
}
memory.Position = 0;
return File(memory, "image/png", "download");
}
这个方法由视图中的ajax调用触发,代码如下:
$.ajax({
url: "./MyHome/DownloadImage",
type: "Get",
data: {filename : filename},
success: function (file) {
},
error: function (request, status, error) {
console.log(request.responseText);
}
});
}
编辑: 如果我在成功部分使用console.log file,我会看到一串字节,所以我知道它正在创建文件但不让用户访问它。我已经尝试过使用content disposition和创建物理文件结果的建议。
DownloadImage
的?当你说没有图片下载时,是什么意思? - Edward