使用 FileStream 从 Adob​​e PDF 阅读器保存选定的 PDF 时如何解决我的

我正在使用 Adobe PDF Reader 从我的计算机查看扫描的纸张,并尝试将其保存到我的 Windows 窗体应用程序中的数据库中。


我使用打开文件对话框选择 PDF 文件,然后我需要将它保存在我的数据库中。我正在使用以下代码:


private void btnPDF_Click(object sender, EventArgs e)

        {

            OpenFileDialog ofd = new OpenFileDialog();

            if (ofd.ShowDialog() == DialogResult.OK)

            {

                PDFViewer.src = ofd.FileName;

            }

        }

private void btnsave_Click(object sender, EventArgs e)

        {

            MemoryStream msins = new MemoryStream();

            MemoryStream msid = new MemoryStream();

            pictureInsurance.Image.Save(msins, pictureInsurance.Image.RawFormat);

            pictureIDIQAMA.Image.Save(msid, pictureIDIQAMA.Image.RawFormat);

            byte[] byteInsurance = msins.ToArray();

            byte[] byteId = msid.ToArray();

            FileStream fStream = File.OpenRead("C:\\myfile.pdf");

            byte[] Doccontents = new byte[fStream.Length];

            fStream.Read(Doccontents, 0, (int)fStream.Length);

            fStream.Close();


            if (update == 1)

            {

                patient.ADD_PATIENT(textName.Text,

                                Convert.ToInt32(textAge.Text),

                                textMobile.Text,

                                textEmail.Text, textaddress.Text,

                                Convert.ToInt32(combogender.SelectedValue),

                                textIDNO.Text,

                                Convert.ToInt32(comboNat.SelectedValue), 

                                byteInsurance,byteId,Doccontents);

                MessageBox.Show("Patient Added Successfully", "ADD PATIENT", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

当我使用固定路径时,它会将内容保存在数据库中:


FileStream fStream = File.OpenRead("C:\\myfile.pdf");

但是当我使用 Adobe PDF 阅读器的名称保存选定的 PDF 文件时,它会显示以下错误“在 mscorlib.dll 中发生‘System.ArgumentException’类型的未处理异常


我需要对代码进行哪些更改来保存所选文件而不是 PDFViewer.src 或者我如何使用 byte[] 方法和内存流(如图像)将 PDF 保存在 SQL Server 数据库中?


白衣非少年
浏览 99回答 1
1回答

九州编程

File.OpenRead() 的参数需要一个字符串。如果 PDFViewer.src 不是字符串类型而是 URI 类型(或类似类型),那么您会遇到您提到的问题。确保 PDFViewer.src 是一个字符串(包含有效的路径和文件名)或将其转换为字符串,如果可能的话: FileStream fStream = File.OpenRead((PDFViewer.src).ToString());或者 FileStream fStream = File.OpenRead((string)PDFViewer.src);
打开App,查看更多内容
随时随地看视频慕课网APP