librelist archives

« back to archive

Fwd: 修正IE6下上传文件路径访问错误的问题

Fwd: 修正IE6下上传文件路径访问错误的问题

From:
Tang Daogang
Date:
2011-09-16 @ 01:07
再发一遍。

---------- Forwarded message ----------
From: Tang Daogang <daogangtang@gmail.com>
Date: 2011/9/15
Subject: 修正IE6下上传文件路径访问错误的问题
To: 道哥 <daogangtang@163.com>, bamboo@librelist.com


问题的原因在于:

使用html5上传(chrome, ie9, firefox都支持)时,是由js在客户端对文件名做了一次url encode;
而在使用form上传(html4上传)时,没有做url
encode。而直接按原文件名保存,但是原文件名的话,又存在一个中文编码的问题(windows上和linux服务器上不一样),于是就出现了找不到文件的问题。

解决方案是,在接收文件后,判断是不是ajax上传,不是的话,就进行一次url encoding. 经测试,已经成功。

上传的文件名现在都是经过url编码的了。所以,在显示的时候,需要执行一次http.decodeURL(file.name
)进行解码,这样才能得到可阅读的文件名。

-- 
Nothing is impossible.




-- 
Nothing is impossible.

Re: [bamboo] Fwd: 修正IE6下上传文件路径访问错误的问题

From:
刚子
Date:
2011-09-16 @ 01:16
中一个问题:服务器上相应位置存在这样的文件:psu[8]_decsmall.png

但是所有浏览器下用路径:/media/uploads/_user/119/logo/psu[8]_decsmall.png均获取不到该文件,好像方括号[]需要转码,']'-->'\]'
求解...

在 2011-09-16 09:07:35,"Tang Daogang" <daogangtang@gmail.com> 写道:
再发一遍。


---------- Forwarded message ----------
From:Tang Daogang<daogangtang@gmail.com>
Date: 2011/9/15
Subject: 修正IE6下上传文件路径访问错误的问题
To: 道哥 <daogangtang@163.com>,bamboo@librelist.com


问题的原因在于:

使用html5上传(chrome, ie9, firefox都支持)时,是由js在客户端对文件名做了一次url encode;
而在使用form上传(html4上传)时,没有做url 
encode。而直接按原文件名保存,但是原文件名的话,又存在一个中文编码的问题(windows上和linux服务器上不一样),于是就出现了找不到文件的问题。

解决方案是,在接收文件后,判断是不是ajax上传,不是的话,就进行一次url encoding. 经测试,已经成功。

上传的文件名现在都是经过url编码的了。所以,在显示的时候,需要执行一次http.decodeURL(file.name)进行解码,这样才能得到可阅读的文件名。

--
Nothing is impossible.





--
Nothing is impossible.

Re: Re: [bamboo] Fwd: 修正IE6下上传文件路径访问错误的问题

From:
道哥
Date:
2011-09-16 @ 01:40
这个就是上面那个问题导致的遗留问题。你那些带中括号的文件肯定是用ie6传上去的。然后,没有转义,就保存为[了。更新后,不会出现这个问题。但你得把之前的那些文件删了,或重新上传。

在 2011-09-16 09:16:15,"刚子" <trustmore@163.com> 写道:
中一个问题:服务器上相应位置存在这样的文件:psu[8]_decsmall.png

但是所有浏览器下用路径:/media/uploads/_user/119/logo/psu[8]_decsmall.png均获取不到该文件,好像方括号[]需要转码,']'-->'\]'
求解...

在 2011-09-16 09:07:35,"Tang Daogang" <daogangtang@gmail.com> 写道:
再发一遍。


---------- Forwarded message ----------
From:Tang Daogang<daogangtang@gmail.com>
Date: 2011/9/15
Subject: 修正IE6下上传文件路径访问错误的问题
To: 道哥 <daogangtang@163.com>,bamboo@librelist.com


问题的原因在于:

使用html5上传(chrome, ie9, firefox都支持)时,是由js在客户端对文件名做了一次url encode;
而在使用form上传(html4上传)时,没有做url 
encode。而直接按原文件名保存,但是原文件名的话,又存在一个中文编码的问题(windows上和linux服务器上不一样),于是就出现了找不到文件的问题。

解决方案是,在接收文件后,判断是不是ajax上传,不是的话,就进行一次url encoding. 经测试,已经成功。

上传的文件名现在都是经过url编码的了。所以,在显示的时候,需要执行一次http.decodeURL(file.name)进行解码,这样才能得到可阅读的文件名。

--
Nothing is impossible.





--
Nothing is impossible.