【问题标题】:How to save an image from one domain onto another如何将图像从一个域保存到另一个域
【发布时间】:2009-08-19 03:41:41
【问题描述】:

我刚刚负责在单独(共享)托管计划中将网站的管理部分抽象到其自己的单独域中。管理部分的部分工作是上传产品图片。现在这个管理部分不再是主域的一部分,我怎样才能从管理域上传产品到主域?

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

谢谢

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

【问题讨论】:

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


    【解决方案1】:

    如果它们在同一个盒子上,您可以让一个站点写入另一个站点的文件系统(如果有正确的权限)。但这听起来好像在您的共享主机环境中不起作用。

    否则,您可以为主应用提供一个 URL 以从管理应用加载图像,只需确保将图像保存到公众可以访问的位置即可。

    【讨论】:

    • 所以没有办法将图像远程上传到另一台主机?
    • 听起来你想要的是一个 Server.Transfer() 到另一个域,这根本行不通。您可以 window.open() 到您的主站点上处理文件上传的页面,但我觉得那会很笨拙。
    • 我可能不得不接受 kludge ... iframe 是否可能工作,我从主站点调用一个页面,该页面的工作是只上传图片?
    • 另一种选择是使用 Web 服务将文件从管理站点复制到主站点。但是不,您不能直接从管理域页面上传到主域资源。
    • 我发现一篇文章演示了如何创建文件上传 Web 服务并通过 WinForms 应用程序上传文件。为 .ASPX 修改会很容易。希望这能让您起步:tinyurl.com/oagr4z
    【解决方案2】:

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

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

    这远不像共享文件夹那么简单,但它会起作用。

    在共享服务器上节省的钱值得花时间实施吗?谁知道...

    【讨论】:

    • 是的,这绝对值得。必须进行抽象。你有关于它如何工作的代码 sn-p 吗?我不知道如何将图片发布到另一个网站
    • 绝对是一个网络服务是去这里的方式
    【解决方案3】:

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

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

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

    编辑 - 事后添加

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

    【讨论】:

    • 我必须这样做,因为如果主站点出现故障,管理站点仍然可以运行。就像现在一样。
    • 您能否将网络驱动器从您的管理服务器映射到主站点服务器?如果是这样,我可以添加一个代码 sn-p 以说明如何完成此操作。
    • 不幸的是我没有服务器访问权限...两者都在共享框上:\
    • 那太糟糕了。然后我喜欢@presleyster 的拥有网络服务的想法。在主站点上,您可以做一个接受图像作为参数的网络服务,并从您的管理站点的上传代码中调用网络服务。我要对他的建议投赞成票。我没想到。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多