龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

在文件上传时实现图片剪切板个性化功能(3)

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
逐个检查图片表单,如果表单域有图片先提交图片文件的表单,这个表单提交到一个隐藏帧,也就是iframe iframe name="iframe_data" id="iframe_data" style="display: no

逐个检查图片表单,如果表单域有图片先提交图片文件的表单,这个表单提交到一个隐藏帧,也就是iframe
 <iframe name="iframe_data" id="iframe_data" style="display: none"></iframe>

如果上传出错调用parent.report_upload_error(msg,id);上传成功调用parent.report_upload_ok(form_id, imageUrl)
report_upload_ok里通过form_id找到表单,替换图片为上传成功提示,替换编辑框的里的本地路径为上传成功后服务器上的图片路径,
然后调用postFile(++id);就像接力一样,提交到隐藏帧,隐藏帧报告给父窗口上传成功,父窗口在提交下一个图片到隐藏帧,所有图片提交
完以后,在post当前文档.

 嗯,挺完美的解决方案,可惜的是IE6以后这个方案不在完美,因为IE7以上版本不在支持显示本地图片,所以选择文件后无法预览图片了,想看看新浪是怎么解决这个问题的,竟然连上传方式都换了,网上搜索了一下似呼可以使用AlphaImageLoader滤镜解决这个问题,firefox似呼也可以通过替换路径来显示本地图片,不过ff下路径目录丢失,处理比较麻烦,出于安全考虑,还是觉得这些方案不够成熟.

因此,我用了以下方案, 修改initUpload ,picShow +Id 显示图片载入中,并提交当前图片表单到iframe,iframe报告状态,成功后直接替换为服务器端路径,发布文章时无需在文件接力
这样就绕过了浏览器安全问题,并兼容大多数浏览器,当点击删除图片时在后台提交到server端删除,牺牲了一点载入时间,不过看来是值得的

    firefox下效果




精彩图集

赞助商链接