0

这是我的困境:我希望用户能够通过提供图像的 URL(它可以是任何图像文件)来将图像加载到画布上。我可以这样做,但是直接从 URL 添加图像会阻止画布导出到文件。所以我想做的是在服务器上创建一个临时副本,并能够将其路径作为 javascript var.... 这可能吗?

4

2 回答 2

0

您始终可以尝试让您的服务器对该 url 发出 http 请求,但有几个问题:

  1. 您需要检查以确保 http 请求不会在内部解析;也就是说,应该只允许外部站点,否则,如果一个人知道正确的路径,就允许曾经只能在内部看到的东西现在可以从外部访问,从而为您的网络制造了一个安全漏洞。
  2. 无法保证您从中提取图像的服务器会满足您的请求。他们可能会检查图像是否是从“授权”(此处松散地使用术语)页面引用的,或者他们可能会拒绝某些用户代理字符串,或断言设置了某些 cookie,或以上的某种组合.
  3. 您可能需要执行某种检查以确保用户有权请求您的服务器发出 url 的请求,并且返回的内容确实是某种图像类型,否则您刚刚制作了一个半功能代理,可能被滥用(特别是如果您担心对您的网站的跨站点脚本攻击;)理想情况下,您也不希望让您的用户在没有真正目的的情况下过度使用您的服务器。

一旦你解决了 #1 和 #3 的问题,严格来说,没有理由必须将文件实际复制到您的服务器,但如果您确实将其保存到服务器,使用可能会更稳定。但如果你要保存它,那么还有其他问题。

  1. 您将如何限制当前用户对文件的访问?
  2. 你的清理策略是什么?
  3. 请求是否需要使用某种客户端缓存以获得合理的性能?文件将如何提供?文件将被命名为什么?
  4. 如果这些文件是受版权保护的,或者更糟的是非法的怎么办?

当然,您不必考虑所有这些问题来实施基本解决方案,但我认为至少考虑一次是明智的。

于 2012-10-24T02:25:17.310 回答
-1

是的。您可以通过AJAX做到这一点。

于 2012-10-24T01:53:25.973 回答