1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 自动上传本地图片和word图片(word图片需使用从word粘贴功能)

自动上传本地图片和word图片(word图片需使用从word粘贴功能)

时间:2020-10-21 20:17:07

相关推荐

自动上传本地图片和word图片(word图片需使用从word粘贴功能)

/topic-1335208.aspx

/showtopic-3145-1.htmlCSharp_ds

复制word我们的编辑器,然后你查看源代码,会看到<v:imagedata src="file:///C:/Users/ADMINI~1/AppData/Local/Temp/1/msohtmlclip1/01/clip_image001.jpg" o:title="KYCMSV2.0管..._.11.23.15.35.21"></v:imagedata>

然后你手动把 <v:imagedata 改成 <img ,以形成<img src="file:///C:/Users/ADMINI~1/AppData/Local/Temp/1/msohtmlclip1/01/clip_image001.jpg" o:title="KYCMSV2.0管..._.11.23.15.35.21"> 的方式,我们的远程存图功能就能自动把临时文件夹里的东西拷贝进系统的。

但是这个问题是只能在服务器上添加内容才能实现,因为这里的[url=file:///]file:///[/url]路径,服务器会从服务器的C盘去找,而真实的路径是在客户机上,所以要用Javascript与结合起来,将图片上传到服务器上。

我的办法是在过滤Word字符的时候,将v:imagedata 转换成标准的img标签,然后用表达式取得图片路径,上传到服务器上,再把路径换成最终图片路径。

目前还存在一个问题,就是如果上传速度太快(比如在服务器上添加文章),会产生同名的随机文件名(这个问题,KY的远程存图也存在,找到原因了,是因为Function.GetFileName位于循环中,所以random.Next有的时候会得到相同的随机数)

修正了一下

如果不勾选远程存图,也自动上传Word图片,否则内容添加后,Word中的图片不可能正常显示,所以改为自动上传图片。

如果图片较大,会造成假死的现象,我增加了一个进度条显示的效果,一边上传一边替换图片路径,速度还不错。所有图片全部上传完毕才会提交数据到数据库。

问题解决了,用FCKEditor.EditorMode来判断编辑器模式

现在重新写了下上传方法,上传速度提高了不少。

上传方式用MSXML2.XMLHTTP或者VBA方式都可以实现,服务器不用做任何额外配置。

试了下重写Flash的FileReference的方式来上传图片,没有成功,主要是FileReference.upload()函数是非阻塞式的,并且安全沙箱难控制,不然这种方式应该可以做出很漂亮的效果,比如透明不规则的上传提示。

这个功能在局域网测试完全没问题,因为传输速度快,没有出错,但是上传到服务器上,然后通过ADSL访问,自动上传时速度较慢,只会上传第一张图片,然后就停住了。

现在的解决办法是用Delphi做了一个ActiveX,在客户机安装好后,就可以使用Word图片自动上传功能了(只需要网站管理员的客户机安装,服务器不用做任何配置,所以也适合虚拟主机用户使用)

我看了下TurboCMS的安装帮助,从Word文档导入并解析出文章标题和内容,需要在服务器安装配置Office组件,我觉得这完全没有必要啊,解析过程全部是在客户机上完成的,服务器上完全用不到Word的信息,等于脱了裤子放屁。

还有他们那个自动上传Word图片的功能,只能一张一张传,而不能批量上传。这样就存在一个问题,比如粘贴的内容中有10张临时路径的图片,他就循环执行10次showModalDialog来上传图片,这在IE6下没问题,如果在IE7下,就只执行一次,然后就提示“拒绝访问”。还有,临时路径他只支持“file:///C:/DOCUME~1/Codegear/LOCALS~1/Temp/msoclip1”这样的短路径格式,如果路径是“C:/Documents and Settings/All Users/Documents/My Pictures”这中带空格的形式,就会提示找不到路径“C:/Documents ”。

看来他们的天价产品没有给出试用版是有原因的,的确是有点唬人。

发现TurboCMS的一个漏洞,Word图片上传地址没有经过身份认证就可以上传图片,那这样的话,在本地提交参数和文件名到TurboCMS服务器,就可以无限上传图片到服务器上(如果够无聊的话,上传些SEX图片 )

研究了一下他为什么不作身份认证,原来是无法获取IE内存中的Cookie值,所以身份验证永远也通不过,如果是模拟登陆获取Cookie的话,那每上传一张图片就要模拟登陆一次后台,速度很慢,而且登陆日志会超长。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。