2

2つのモジュールを持つ1つのWebサイトを作成しました。

  1. 管理者
  2. ユーザー

それらは異なるドメインでホストされています。これで、ユーザーがドメインを開いたときに、abc.comを想定して会社を登録し、そこから写真をアップロードすると、アップロードされた写真がCompany_LogoFOLDERに移動します。ここで、ADMINのドメインがxyz.comであるとします。ADMINがxyz.comを開いて、abc.comからアップロードされた写真を表示できるようにします。ADMINがxyz.comからアップロードされた写真を、Company_LogoFOLDERにあるabc.comに変更できるようにします。

短い写真はabc.comにあるユーザー側からアップロードされ、xyz.comにあるADMIN側から置き換えられます。どうすればよいですか。

4

4 に答える 4

1

したがって、異なるドメイン、場合によっては異なるサーバーでホストされている2つの異なるサイトがあり、ファイルがアップロードされたときにサイトAがサイトBに通知するようにします。次に、サイトAのそのファイルをサイトBから変更できるようにします。

サイトAで何らかのAPIを作成する必要があるようです。これにより、サイトBのユーザー(管理者)は最近アップロードされたファイルを確認し、上書きすることができます。

于 2012-10-04T12:08:16.800 に答える
1

わかりました、これは実行できますが、HttpHandler. ここで良い例を見つけることができますが、重要な部分を詳しく説明します。ここでハンドラー全体を適切に記述することはできません。

まず、Web プロジェクトでクラスを作成して呼び出しましょうImageHandler...

public class ImageHandler : IHttpHandler
{
}

... 次にインターフェースを実装しましょう ...

public bool IsReusable
{
    get { return false; }
}

public void ProcessRequest(HttpContext context)
{
    // find out what we're trying to do first
    string method = context.Request.HttpMethod;

    switch (method)
    {
        case "GET":
            // read the query string for the document name or ID

            // read the file in from the shared folder

            // write those bytes to the response, ensuring to set the Reponse.ContentType
            // and also remember to issue Reponse.Clear()

            break;
        case "PUT":
            // read the Headers from the Request to get the byte[] of the file to CREATE

            // write those bytes to disk

            // construct a 200 response

            break;
        case "POST":
            // read the Headers from the Request to get the byte[] of the file to UPDATE

            // write those bytes to disk

            // construct a 200 response

            break;
        case "DELETE":
            // read the Headers from the Request to get the byte[] of the file to DELETE

            // write those bytes to disk

            // construct a 200 response

            break;
    }
}

web.config... 最後に、 ...でハンドラーをセットアップする必要があります。

<configuration>
   <system.web>
      <httpHandlers>
         <!-- remember that you need to replace the {YourNamespace} with your fully qualified -->
         <!-- namespace and you need to replace {YourAssemblyName} with your assembly name    -->
         <!-- EXCLUDING the .dll                                                              -->
         <add verb="*" path="*/images/*" type="{YourNamespace}.ImageHandler, {YourAssemblyName}" />
      </httpHandlers>
   </system.web>
</configuration>

最後に、ハンドラーに入ったときに検証できるある種のセッション キーを渡すことも必要です。PUT,動詞が必要ないかどうかは問題ではありませんが、必要POSTですDELETE

GET技術的には、誰もが にアクセスできることを気にしないのであれば、セッション キーをチェックする必要はありませんがGET、他の人についてはチェックする必要があります。

于 2012-10-04T12:19:05.790 に答える
1

2 つのオプションがあります。

  • 両方のサイトが同じマシンまたは共有ホスティング環境でホストされている場合、サイトが他のディレクトリにアクセスできる可能性があります。その場合、画像を目的のフォルダに簡単に配置できます。

  • 次に、サイトの 1 つが別のサイトのフォルダーにアクセスできない 2 番目のケースは、かなり複雑です。管理サイトが画像を受け入れ、それをメイン サイト フォルダに配置するプロキシを作成する必要があります。ただし、これはお勧めしません。

于 2012-10-04T11:58:10.420 に答える
0

これは 2 つの手順で行うことができます。

1) 標準のファイル アップロード メカニズムを使用して、サーバーに画像をアップロードします。

2) HttpWebRequestクラスを使用して、元のアップロード直後にサーバー側の別のサーバーに画像をアップロードします。この記事を参照してください: HTTPWebrequest でファイルをアップロードする (multipart/form-data)

これを参照してください: http://forums.asp.net/t/1726911.aspx/1

于 2012-10-04T12:13:23.497 に答える