如何把PDF文件插入数据库,又如何把它读出来显示

xwh0318 2009-11-03 09:30:12
如何把PDF文件插入数据库,又如何把它读出来显示
...全文
763 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
zpebzhang_1 2010-09-16
  • 打赏
  • 举报
回复
试了一下,可以的
zpebzhang_1 2010-09-16
  • 打赏
  • 举报
回复
下载试试
yhs2003 2009-11-05
  • 打赏
  • 举报
回复
楼上的方法应该可行。其实,无论PDF、Word、EXCEL......什么文件存入数据库的方法都是一样的,即存储时:通过流存入数据库。读取时:通过流写入临时文件。再打开。
另外,千万不要试图存取路径,如果数据库需要备份和装载时,路径问题一定会搞死你!!!!
mengmeng4553 2009-11-05
  • 打赏
  • 举报
回复
这个我刚做完,是好使的,呵呵,希望能帮到你。
mengmeng4553 2009-11-05
  • 打赏
  • 举报
回复
string path = AppDomain.CurrentDomain.SetupInformation.ApplicationBase.ToString();

string sql;
string accessoriesId;

if (!dataGridView_add.Rows[dataGridView_add.CurrentRow.Index].Cells[1].Value.Equals(dataGridView_add.Rows[dataGridView_add.CurrentRow.Index].Cells[2].Value))
{
System.Diagnostics.Process.Start(dataGridView_add.CurrentCell.Value.ToString());
return;
}

Cnt.openConnection();
MySqlCommand cmd = new MySqlCommand();
cmd = Cnt.getConn().CreateCommand();

accessoriesId = dataGridView_add.CurrentRow.Cells[0].Value.ToString();//获取accessories表中的id(即:dataGridView_add隐藏的第0列).
sql = "select content from tbl_accessories where id = '" + accessoriesId + "'";//根据tbl_accessories表中的ID选择

cmd.CommandText = sql;
//取数据库中的比特流到buffByte数组
MySqlDataReader reader = cmd.ExecuteReader();
string fileExtension, strFileNamed;
byte[] buffByte = null;
while (reader.Read())
{
buffByte = ((byte[])reader[0]);
}
reader.Close();

strFileNamed = dataGridView_add.CurrentCell.Value.ToString();//获取当前选择的Cell中的内容(即文件名)
fileExtension = strFileNamed.Substring(strFileNamed.Length - 4);

//判断所选则文件的文件拓展名
if (fileExtension == ".pdf")
{
if (File.Exists(path+"\\temp.pdf")) //其中6.pdf为临时文件,命名随意
{
File.Delete(path+"\\temp.pdf");
}

//读比特流写到临时文件6.pdf
FileStream fs = new FileStream(path+"\\temp.pdf", FileMode.CreateNew, FileAccess.Write);
fs.Write(buffByte, 0, buffByte.Length);
System.Diagnostics.Process.Start(path+"\\temp.pdf");

fs.Close();
}

else
{
//此处可写操作图片的代码
//截取字符串后缀和长度
String picture = "";
string[] word1 = strFileNamed.Split(new char[] { '.' });
foreach (string temp in word1)
{
picture = temp;
}
int num1 = picture.Length;
if (num1 == 3)
{

fileExtension = strFileNamed.Substring(strFileNamed.Length - 4);
}
else if (num1 == 4)
{

fileExtension = strFileNamed.Substring(strFileNamed.Length - 5);
}
//判断所选则文件的文件拓展名

if (File.Exists(path+"\\temp." + picture))
{
File.Delete(path+"\\temp." + picture);
}

//读比特流写到临时文件.pdf
FileStream fs = new FileStream(path+"\\temp." + picture, FileMode.CreateNew, FileAccess.Write);
fs.Write(buffByte, 0, buffByte.Length);
System.Diagnostics.Process.Start(path+"\\temp." + picture);

fs.Close();
mjp1234airen4385 2009-11-04
  • 打赏
  • 举报
回复
PDF的控件。
xwh0318 2009-11-04
  • 打赏
  • 举报
回复
我用二进制方式存到数据库里面了,不知道怎样用PDF 组件显示,请知道的朋友不吝赐教啊
ycagri 2009-11-04
  • 打赏
  • 举报
回复
可以使用itextsharp以流的方式存入数据库
lee_b 2009-11-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xwh0318 的回复:]
存路径如果图纸位置有变动或被删除就会有问题,还是存到数据库服器里面比较好一点,只要做个远程数据库联接就好了 ,不知道如何把PDF文件插入到数据库里面,又如何读出来呢,在数据库里应该用什么类型来存储?
[/Quote]
牛,,LZ,,搞定了拿出来学习哦...期待,顶./.
xwh0318 2009-11-04
  • 打赏
  • 举报
回复
存路径如果图纸位置有变动或被删除就会有问题,还是存到数据库服器里面比较好一点,只要做个远程数据库联接就好了 ,不知道如何把PDF文件插入到数据库里面,又如何读出来呢,在数据库里应该用什么类型来存储?
xwh0318 2009-11-04
  • 打赏
  • 举报
回复
有没有代码,能贴出相应代码吗
jnshijin 2009-11-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lee_b 的回复:]
存路径吧。。。然后再用Adobe Reader带有的dll控件读取就OK了。。
[/Quote]
请说详细一点可以吗?
lee_b 2009-11-03
  • 打赏
  • 举报
回复
存路径吧。。。然后再用Adobe Reader带有的dll控件读取就OK了。。
lee_b 2009-11-03
  • 打赏
  • 举报
回复
4楼,,你的意思是读取完PDF的内容,然后存入数据库里???
那就得期待高手出现了。。读取PDF文件??那是什么格式我都不清楚,我读不出呢。。呵呵,自己慢慢研究PDF去吧。。
CXZ84 2009-11-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lee_b 的回复:]
引用 2 楼 jnshijin 的回复:
引用 1 楼 lee_b 的回复:
存路径吧。。。然后再用Adobe Reader带有的dll控件读取就OK了。。

请说详细一点可以吗?

你把你的PDF文件的路径存放到数据库里面
然后从数据库里面读出PDF文件的路径,在页面或者窗体拖入用Adobe Reader带有的dll控件,读取就OK啦。
pdfViewCountrol1.LodaPdfFile(filename);
就这么简单一句,filename是你的数据库里存储的PDF路径。
pdfViewControl1你如果装了Adobe Reader就可以在工具栏去添加那个控件。AcroPDF.dll
[/Quote]


这个问题我之前也想问,那如果我想直接把数据从PDF上导入到数据库中呢? 有没有办法?还是还得用这个方法,然后用程序处理,然后再用Insert语句插入?
lee_b 2009-11-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jnshijin 的回复:]
引用 1 楼 lee_b 的回复:
存路径吧。。。然后再用Adobe Reader带有的dll控件读取就OK了。。

请说详细一点可以吗?
[/Quote]
你把你的PDF文件的路径存放到数据库里面
然后从数据库里面读出PDF文件的路径,在页面或者窗体拖入用Adobe Reader带有的dll控件,读取就OK啦。
pdfViewCountrol1.LodaPdfFile(filename);
就这么简单一句,filename是你的数据库里存储的PDF路径。
pdfViewControl1你如果装了Adobe Reader就可以在工具栏去添加那个控件。AcroPDF.dll

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧