首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对图像进行编码以在浏览器中显示

如何对图像进行编码以在浏览器中显示
EN

Stack Overflow用户
提问于 2013-04-18 12:57:36
回答 1查看 1.4K关注 0票数 1

我有很多图像保存在服务器端的文件夹中,数据库有每个文件的url,客户端由于允许不能直接打开图像。我的问题是如何从服务器对图像进行编码以在浏览器中显示它?

这是我在操作结果中搜索图像的代码:

代码语言:javascript
复制
public FileResult SearchImage()
{

    var path = @"\\jesus-pc\Frontera\IMAGENES\SINGNOS DISTINTIVOS\0\80HP23891268272.TIF";
    var img1 = System.IO.File.ReadAllBytes(path);

    return File(im1, "image/jpg");
}

图像存在,但所显示的内容如下:

我尝试过使用Convert.ToBase64String(img1),但是我得到了一个错误:

代码语言:javascript
复制
the server responded with a status of 414 (Request-Uri Too Long)

我做错了什么?

更新:

我的错是我没有写我正在做的事情的全部代码。

最后一个没有提到的部分是im使用ajax调用图像。

当用户发送信息请求时,将有一个链接打开一个模式框。在该模式框中,必须显示图像,但图像将使用ajax加载,因为不应该重新加载页面。因此,图像将被请求使用ajax。这是我的代码:

代码语言:javascript
复制
$(".doc").dblclick(function () {


$.ajax({
    url: "mainpage/SearchImage",
    data: "",
    type: "post",
    success: function (data) {
        ModalWindow.open();
        document.getElementById("img_1").src = data;
    }

})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-18 13:01:24

考虑使用FileStreamResult而不是FileResult。这应该能解决你的问题。代码应该类似于:

代码语言:javascript
复制
public FileStreamResult SearchImage()
{

    var path = 
       @"\\jesus-pc\Frontera\IMAGENES\SINGNOS DISTINTIVOS\0\80HP23891268272.TIF";
    var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read);
    return new FileStreamResult(fileStream, "image/jpeg");
}

另一件引起我注意的事情是mime类型的指定。在文件名中,它是tif,但在代码中是jpeg

更新

你为什么要用ajax来做这个呢?相反,你可以做这样的事情:

代码语言:javascript
复制
$('#img_1').attr('src', 'mainpage/SearchImage');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16083599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档