我需要使用字符串构建器在网页中显示图像。我知道通过这个片段sb.Append("<a href=\"http://www.mypage.com\"><img src=\"bla.jpg\" /></a>");
我可以显示一个图像。我的问题是图像路径是动态生成的,并且位于string
变量中。
以下是我尝试的代码:
Dim table_builder As New StringBuilder
table_builder.Append("<table width=100%>")
Dim filePath As String = Server.MapPath("../attachments/") & fileName
// file name is the name of the file fetching from the database
table_builder.Append("<tr>")
table_builder.Append("<td>")
table_builder.Append("<img src='" + filePath + "'/>")
table_builder.Append("</td>")
table_builder.Append("</tr>")
但是它没有通过执行代码来显示图像
table_builder.Append("</table>")
attach.innerHTML = table_builder.ToString()
答案 0 :(得分:1)
Server.MapPath("../attachments/")
会映射物理路径,这就是图像未显示的原因。所以你可以编辑你的代码:
table_builder.Append("<table width=100%>")
table_builder.Append("<tr>")
table_builder.Append("<td>")
table_builder.Append("<img src='" + "../attachments/" & fileName + "'/>")
table_builder.Append("</td>")
table_builder.Append("</tr>")
table_builder.Append("</table>")
attach.innerHTML = table_builder.ToString()
作为参考,splattne的The Answer说:
Server.MapPath指定映射到物理目录的相对或虚拟路径。
答案 1 :(得分:0)
Server.MapPath将返回服务器上文件的PHYSICAL路径。您当然不希望这样,因为无法从客户端访问该文件。 你应该使用相对路径
like Dim filePath As String = ("/attachments/") & fileName
该文件应该可以从客户端访问
http://domainname.com/attachments/filename
在路径中使用../
时也要小心。您最终可能会在根路径下降一级,但可能无法从客户端访问
通常〜可用于始终从站点根
启动路径