简体   繁体   English

如何在C#中将标记的src设置为字节数组中的pdf内容

[英]how to set the src of embed tag to pdf content from byte array in C#

In my web application, I am saving the uploaded pdf as Blob data in my oracle db. 在我的Web应用程序中,我将上传的pdf作为Blob数据保存在我的oracle数据库中。

Now while fetching the same blob data, I am getting it as byte array as below:- 现在,在获取相同的blob数据时,我将其作为字节数组获取,如下所示:-

public static byte[] OpenAttachment(string strAttachNo, bool isOverloaded)
    {
        OracleConnection objConn = OracleHelper.GetConnection("myDB");
        OracleDataReader dtApplReader = null;
        string strProc = "mySpName";
        OracleParameter[] oraParam = new OracleParameter[2];
        oraParam[0] = new OracleParameter("p_attach_no", OracleType.Number);
        oraParam[0].Direction = ParameterDirection.Input;
        oraParam[0].Value = long.Parse(strAttachNo);
        oraParam[1] = new OracleParameter("p_curresult", OracleType.Cursor);
        oraParam[1].Direction = ParameterDirection.Output;
        objConn.Open();
        dtApplReader = OracleHelper.ExecuteReader(objConn, CommandType.StoredProcedure, strProc, oraParam);
        while (dtApplReader.Read())
        {
            byte[] val = (byte[])dtApplReader["ATTACHMENT"];

            return val;
        }

In my UIPage.aspx.cs, I am converting this byte array to base64 string as below. 在我的UIPage.aspx.cs中,我将此字节数组转换为base64字符串,如下所示。

 string base64String = Convert.ToBase64String(bytes, 0, bytes.Length);
 var pdfUrl  = "data:application/pdf;base64," + base64String;
 pdfPreview.Attributes.Add("src", base64String);

UI Control UI控件

<embed src="#" visible="false" width="500" height="375" runat="server" type='application/pdf' id="pdfPreview"  />

but somehow that pdf is NOT rendering, while inspecting in Chrome dev tools, 但不知何故,该PDF 渲染,同时检查在Chrome开发工具,

在此处输入图片说明

How do I set this base64 string to proper pdf content?? 如何将此base64字符串设置为适当的pdf内容?

Instead of adding base64String as src attribute, You should use pdfUrl as src attribute. 不应将base64String添加为src属性,而应使用pdfUrl作为src属性。

string base64String = Convert.ToBase64String(bytes, 0, bytes.Length);
var pdfUrl  = "data:application/pdf;base64," + base64String;
pdfPreview.Attributes.Add("src", pdfUrl);

Hope this helps! 希望这可以帮助!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM