日期:2014-05-16  浏览次数:20564 次

ajax 上传图片以及图片预览问题
目的是兼容 ie6.7.8 以及火狐,
请问可以做到吗?之前看到那些说 不能访问客户端的文件路径。
在ie7 8 与火狐哪里的确不行。
请大家 给个例子。最好是源代码的。。谢谢
------解决方案--------------------
该回复于2010-08-06 10:40:54被版主删除

------解决方案--------------------
恩。。。。
我的知道一种做法,但是和ajax没有什么关系,我以前使用jsp的servlet写的。

我可以把思路说给你,

就是写一个隐藏iframe框架src=“处理上传服务器页面比如一个jsp,”,

在页面中写个上传文件的表单,然后action提交到,这个页面中隐藏的iframe框的src指定的服务器页面(jsp)上,然后在服务器页面上,写一段对调函数,用来调用主页面里一个js函数ajax向服务器发送请求,获取刚刚上传图片的地址,然后显示在页面上。

源代码有就是用 jsp写的 。如果你想看一看,可以加我的QQ:285207813.
------解决方案--------------------
ie6好用,7.8一般都没问题
这个的用框架吧,你是上传完预览?
请问可以做到吗?之前看到那些说 不能访问客户端的文件路径。 
在服务器建个文件夹,将图片保存到那里
然后将相对路径保存到数据库
------解决方案--------------------
不懂,顶下
------解决方案--------------------
关注一下.
------解决方案--------------------
在客户端有权限问题,实现了也没意义,不是每个人都开放fso权限给你。

最好的办法是用隐藏的iframe提交图片到服务器上判断下大小然后输出回调js来提示客户大小是否符合要求。

iframe的无刷新上传示例,非ajax

ajax无刷新上传文件,使用iframe模仿
------解决方案--------------------
引用:
请问是用iframe 在服务器端上传?然后再回调吗?


用ajax上传,然后ajax不是有回调函数吗,上传成功后把后台返回的结果显示在iframe里~`
------解决方案--------------------
路过学习了
------解决方案--------------------
引用:
是有回调。但都没有获取到正确的文件路径,如何来的文件呢?用服务器端的代码 就能获取到。
showbo 说得应该是解决方法啦


你用一个临时文件夹来保存上传的图片,然后输出js调用父页的回调函数来设置img的src属性,这样就实现预览了。



父页回调函数
//p为服务器端生成的文件名
function setFilePath(p){
  document.getElementById('img的id').src='如果有临时文件夹加上'+p;
}


iframe 输出js代码调用回调函数
filename=""
'=========保存图片并检查图片大小的代码,并设置filename变量的值为生成的文件名
if 符合大小 then
  Response.Write "<script>parent.setFilePath('"&filename&"')</script>"
else
  response.write "<script>alert('大小不符合')</script>"
end if
response.end



当提交表单后,你可以重新保存图片或者从缓存文件夹中移动已经保存的图片到你需要的文件夹下。