动态添加src到C#中的img

时间:2017-09-04 01:34:11

标签: c# html image

我有一个img标签。 (我使用的只是图像,而不是asp.net,因为它是imageMap,我使用的是img)。 我以3种不同的方式动态设置src如下所示。第一种方式有效,图像包含在项目中。但是当我尝试添加src第二种方式时,它无法显示图像。该图像不是项目的一部分。我甚至尝试了第三种方式用于不同的位置,但它也无法加载。它也不是项目的一部分。我需要做的是动态加载ans图像src,不包含在项目中并显示它。

<img runat="server" class="ImageMap" id="ImageMapID" src="" usemap="#imagemap" />

ImageMapID.Attributes["src"] = @"/Icons/XXXX XXXX.png";//first way that works

ImageMapID.Attributes["src"] = @"/documents/XXXXX/XXXX_04092017.pdf"; // second way that fails

ImageMapID.Attributes["src"] = @"file://C:/temp/XXXXXXXX.pdf";// third way that fails

任何想法?我应该补充一下,他们是不同的图像,但它们都应该有效。

1 个答案:

答案 0 :(得分:1)

首先您应该知道,PDF文件不是图像对象,因此您无法使用img标记来嵌入它。您需要使用iframe标记:

<iframe src="file:///C:/temp/XXXXXXXX.pdf" style="width: 100%; height: 100%;" frameborder="0" scrolling="no">
   ...
</iframe>

或者使用embed / object标记使用相同的文件路径:

<embed src="file:///C:/temp/XXXXXXXX.pdf" width="600" height="400" type="application/pdf">

<object type="application/pdf" data="file:///C:/temp/XXXXXXXX.pdf" title="XXXXX" width="600" height="400" >...</object>

如果要包含图像的本地文件路径,请使用file引用路径或相对路径以及下面示例中显示的正确目录结构:

ImageMapID.Attributes["src"] = @"file:///C:/temp/Icons/XXXXXXXX.png";

// watch out for current relative path you're using
ImageMapID.Attributes["src"] = @"../../temp/Icons/XXXXXXXX.png";

请注意,Windows本地驱动器路径使用此格式引用任何文件,以便在具有source属性的任何HTML元素中使用:

file:///[drive letter]:/[path_to_resource]/[filename].[extension]

参考文献:

How to properly reference local resources in HTML?

Recommended way to embed PDF in HTML?