今天想要上传图片,希望能在上传的时候显示缩略图。结果我怎样都获取不到客户端的图片。

所以尝试解决了一下,同时也发现了一个fakepath的问题。

一、问题场景

1

无法显示本地文件,报出两个错误:

  1. Not allowed to load local resource: file:///C:/fakepath/QQ%E6%88%AA%E5%9B%BE20150517184050.png
  2. Not allowed to load local resource: file:///C:/Users/Administrator.USER-20150703ZH/Desktop/QQ%E6%88%AA%E5%9B%BE20150517184050.png

仔细一想这也是当然的,浏览器当然不能去操作客户端本地的文件,如果能,那我随便写个脚本就能把客户端的文件上传到服务器里去了…

浏览器的机制就是禁止访问调用本地文件。

至于fakepath的问题,chrome浏览器会自动帮你将选择的文件路径转为fakepath,不知道是不是防止服务端获取客户端文件的绝对地址。

2

而ie似乎比较耿直(抠脚)啊…

那么在本地显示图片是不可能的了,那么怎么解决呢?

我一开始就觉得,因为通过本地的绝对路径展示是不可行的,只能先上传,然后用服务器的相对路径来显示图片了。

这当然是可以实现效果的,就是太笨重了,没有必要。万一上传之后用户觉得效果不好,想弃置不用怎么办…文件都已经到了服务器里了,还要进行其他操作。

二、总结

最后我找到了一种新方法来实现,用h5新特性file来进行处理。

下一篇文章进行详细说明。

发表评论

电子邮件地址不会被公开。 必填项已用*标注