日期:2014-05-18  浏览次数:20572 次

关于从word导入图片到数据库的问题。。。。
我从word导入图片到数据库的时候代码是这样的
C# code


                    ///////////////////////处理图片 Begin/////////////////////////////////////////////////


                    if (Directory.Exists("C:\\TempPics\\"))
                    {
                        //每次处理时先清空图片文件夹
                        foreach (string d in Directory.GetFiles("C:\\TempPics\\"))
                        {
                            File.Delete(d);
                        }
                    }
                    //首先创建一个用于存放图片的文件夹
                    if (!Directory.Exists("C:\\TempPics\\")) Directory.CreateDirectory("C:\\TempPics\\");

                    foreach (Word.InlineShape ish in doc.InlineShapes)
                    {
                        if ((ish.Type == Word.WdInlineShapeType.wdInlineShapeLinkedPicture) || (ish.Type == Word.WdInlineShapeType.wdInlineShapePicture))
                        {
                            
                            ish.Select();
                            
                            //拷贝图片
                            app.Selection.CopyAsPicture();
                            Image image = Clipboard.GetImage();
                            
                            Bitmap bitmap = new Bitmap(image);

                            //bitmap转换为byte[]类型
                            MemoryStream imgStream = new MemoryStream();
                            bitmap.Save(imgStream, System.Drawing.Imaging.ImageFormat.Jpeg);
                            byte[] bytes ={ };
                            bytes = imgStream.ToArray();

                            //获取image表中最大ID
                            int i = DataHelper.GetImageID();
                            //导入图片到数据库sys_Image表
                            DataHelper.ImportPics(i, bytes);
                            ish.Delete();
                            Clipboard.Clear();
                        }
                    }                
                    //////////////////////处理图片 End///////////////////////////////////////////////////



现在的问题就是当上面代码中判断语句ish.Type == Word.WdInlineShapeType.wdInlineShapeLinkedPicture的时候图片导入会识别不了这个图片而自动识别到上一个图片,当ish.Type == Word.WdInlineShapeType.wdInlineShapePicture的时候就是正常识别导入的,如下图,第一个图片是wdInlineShapePicture导入正常,第二个图片判断是wdInlineShapeLinkedPicture类型导入不了后就自动把第一个图片再次导入了。

不知道为什么wdInlineShapeLinkedPicture类型的导入不了,大虾们帮帮忙吧,看看有啥解决办法。

------解决方案--------------------
WORD中有2张图片么?
------解决方案--------------------
没遇到过,帮顶下