如何将图像从一个域保存到另一个域

时间:2009-08-18 19:21:43

标签: asp.net cross-domain image-uploading

我的任务是将网站的管理部分抽象到一个单独的(共享)主机方案中的独立域。管理部分的一部分是上传产品图片。既然此管理部分已不再是主域的一部分,我该如何从管理域将产品上传到主域?

我正在使用ASP.NET / VB.NET。

由于

编辑让我补充一点,两个系统都在共享主机方案上,所以我真的没有任何能力映射驱动器或任何东西。我一直在寻找一种程序化的方式。有没有办法让一个站点“调用”另一个站点并告诉它将哪些文件保存到服务器上?

3 个答案:

答案 0 :(得分:2)

如果它们在同一个盒子上,您可以让一个站点写入另一个站点的文件系统(给定正确的权限)。但这听起来似乎无法在您的共享托管环境中运行。

否则,您可以提供主应用的网址,以便从管理应用加载图片,只需确保将图片保存到公众可以访问的位置。

答案 1 :(得分:2)

您可以在非管理域上设置将由管理域调用的Web服务。因此,当您在管理员中上传新图片时:

  • 选择要上传的文件
  • 提交表格(回发)
  • 在文件上传事件处理程序中,使用必要的详细信息(名称,内容等)调用非管理域上的Web服务
  • 在webservice中,您保存文件,更新数据库等,并返回管理页面所需的任何数据,以了解图像的存储位置
  • 管理页面继续处理

它远不像共享文件夹那么容易,但它会起作用。

共享服务器上节省的资金是否值得实施?谁知道......

答案 2 :(得分:0)

我还没有找到更优雅的解决方案,所以我希望你能得到比我更好的答案。根据您的设置,我也不确定这是否可行。

在这种情况下,我通常做的是做两个选项之一。两者都涉及从上载图像的服务器映射网络驱动器,然后将文件从管理站点复制到主站点。

我可以在上传文件后立即复制文件,也可以编写单独的脚本来复制文件。可能,在管理员网站上,我会列出需要复制的文件,然后点击按钮进行复制。

编辑 - 事后添加

这是我经常遇到的挑战之一。由于涉及额外的开销,我几乎从未将我的管理站点放在与主站点不同的服务器上。上述方法仅在我绝对需要这样做的地方使用。