0

私は、ユーザーが独自の HTML テンプレートを作成してインターネットに公開できるようにするアプリケーションに取り組んでいます。ユーザーは目的のために画像をアップロードして使用できます。

問題
の説明: ユーザーは、テンプレートを公開する前にドメインを作成する必要があります。cpanel関数を使用してドメインを作成します。ユーザーはテンプレートを編集するために戻ってきます。両方のドメインに個別のコピーは必要ありません!ユーザーは自分の Web サイトをwww.xyz.comで編集し、それをABC.xyz.comで作成して公開します(サブドメインまたはメイン ドメインにすることができます)。そこで、画像を A​​BC.xyz.com にアップロードし、同じパスを編集ドメインに反映させて、複数の画像を保存するオーバーヘッドを回避したいと考えています。これには、クロスドメインスクリプティングが含まれますか?はい!)
これを達成する方法についての理解が不十分なため、開始できません!どのように進めればよいか知りたいですか?正しい方向に開始するために、何か助けがあればよいでしょう. :始めたらコードを更新します。

4

2 に答える 2

1

いいえ、クロスドメイン スクリプティングは必要ありません。ファイルをブラウザから別のドメインに直接アップロードする必要はありません。

em をサーバーにアップロードし、そこからコピー (同じサーバー上にある場合) または ftp/scp/em をアップロードするために行うことは何でもできます。

注意が必要なのは、ユーザーが自分の Web サイトで変更を行えるようにすることです。しかし、私はあなたが同じサーバーとしてそれをやっていると信じています... apache mod_alias を簡単に使用するだけで正しくなります。

于 2013-02-05T07:37:16.060 に答える
1

セットアップが正確にはわかりませんが、サブドメインに仮想ホストを使用し、それらを xyz.com ドメイン内にあるフォルダーにポイントします。

たとえば、ユーザーが xyz.com で自分の Web サイトを編集すると、xyz.com はこれらの画像を xyz.com/ABC/images に保存します。次に、サブドメイン ABC.xyz.com は実際にはルート www ディレクトリとして xyz.com/ABC フォルダーを指します。

何らかの理由でドメインを 2 台の別々のコンピューターでホストしている場合は、cron ジョブで ftp または cp スクリプトを使用して、他のシステムのファイルを xyz.com ドメインのファイルにミラーリングしておくことができます。

ローカル ファイルを外部サーバーにアップロードする ftp の例を次に示します。

public function ExecFTPUpload($local_file, $uploadfilename){
    $handle = fopen($local_file, 'r');

    $success = true;

    $conn_id = ftp_connect($this->config->ftpserver);

    // check connection 
    if ($conn_id && ($login_result = ftp_login($conn_id, $this->config->ftp_user_name, $this->config->ftp_user_pass))) {
         ftp_pasv($conn_id, true); 
        // try to upload $local_file and save it to $handle
        if(!ftp_fput($conn_id, $uploadfilename, $handle, FTP_ASCII)) $success = false;
        ftp_close($conn_id);  
    }else $success = false;

    return $success;
}
于 2013-02-05T07:38:34.350 に答える