extjs怎么使图片上传时显示预览

网站注册的时候常见的更换头像时用到的,点击浏览按钮,文本框显示图片路径,然后在下面显示图片... 网站注册的时候常见的更换头像时用到的,点击浏览按钮,文本框显示图片路径,然后在下面显示图片 展开
 我来答
熊依琴ir
推荐于2016-07-17 · TA获得超过378个赞
知道小有建树答主
回答量:657
采纳率:0%
帮助的人:537万
展开全部
这个我做过,不难,思路给你

1.是当文本框内容发生改变的时候就将图片上传到服务器(如果图片小,用户是感觉不到你已经做了上传操作的。)

2.当服务器接受到这个图片的时候,将其放入到一个临时文件夹中并返回给前台一个图片路径(图片流也可以)。

3.Ajax请求会有一个相应,在服务器端成功接受到上传的图片后,返回给Ajax一个Reponse,这个Reponse里包含一个图片路径。

4.ExtJS在前台获取success里的responseText之后(也就是图片路径)将默认图片的src指向从后台反馈回来的图片路径。

现在图片就会现实出来

流程是:

用户选择图片-->
触发文本框改变事件--->
在事件中通过AJAX将图片上传给服务器--->
服务器将图片名称修改为UUID以免重复,并将此图片的路径返回给前台--->
前台AJAX请求的回调函数中获取responseText,也就是图片路径--->
设置默认图片的src为responseText---->
用户重新选择的时候(例如用户不喜欢这张图)--->
在文本框改变事件中通过AJAX将图片上传(包括先前上传的图片名称)--->
后台根据参数先删除临时图片--->
重复以上的步骤直到用户确定

需要注意的问题:
1.当用户改变了图片之后,需要把上一次的临时图片文件删除掉,以免出现垃圾图片过多。

2.每次上传图片的时候要在后面跟上一个随机参数(因为如果请求路径和参数相同,浏览器不会再继续发送请求)。通常情况下使用new Date()就可以了例如
"uploadImag.do?method=uploadImage&randomParam="+new Date()

3.图片太大的话,效果不是很好。

4.当用户点击确定后,将临时文件里的图片放置到你的正式图片存放目录下即可。

5.图片上传到后台使用UUID改名字,否则可能有重复
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式