在html表单中,我们有一个图像字段,用于上传文件。我按照http://blog.teamtreehouse.com/reading-files-using-the-html5-filereader-api的教程进行操作,从本地磁盘上传图像文件时效果很好。
但是假设我有一个图片网址http://www.google.com/images/logos/ps_logo2.png,并希望从远程网址上传此图片,而不是从本地磁盘上传。
FileReader
API在尝试从本地磁盘上传图片时效果很好,但我们如何使用它来按网址加载图片?
通过将图像字段设置为base64
,可以轻松创建<img src='data:image/png;base64,iAks4ds__base64__string' id='user_img'>
图像并将其用于预览,但是应该采用哪种工作流程来使用jQuery或JavaScript从远程网址上传图像?
我怎么样?有什么建议吗?
答案 0 :(得分:2)
FileReader
API专用于本地文件(cf http://www.html5rocks.com/en/tutorials/file/dndfiles/)
如果您想从远程网址下载图片并在javascript中提取数据,可以使用Image
和Canvas
元素,如以下问题中所述:Convert an image into binary data in javascript
答案 1 :(得分:1)
如@fiddler回答所说,fileReader仅用于本地文件,
如果你需要从远程网址获取图像,那么你可以采用另一种方法
1)using Http Get request
2)using Canvas features
但是由于安全威胁,浏览器不允许脚本执行跨源请求,只有DOM本身才能这样做。可以通过
解决
1)Cors(跨域资源共享)?
2)Jsonp ?
现在你很好奇cors or jsonp
如果您可以访问存在远程事物的服务器,则可以执行大多数人推荐的服务器端CO ?。
但是作为寻找可以处理任何远程资源的解决方案的问题,cors proxy ?可以帮助您
free cors proxies