4

バックグラウンド:

私はCS部門の学部研究プロジェクトに取り組んでいます。このプロジェクトは生物学部門のWebサイトであり、主な機能は、生物学の学生が自分の.xmlファイルをアップロードして、Matlabを使用してサーバー側で*モデルを構築できることです。

フロントエンドは、ASP.NET、javascript、およびC#環境にあります。このプロジェクトとの私の小さな関係は、これらのシステム、ツール、および言語について私が持っているすべての知識です。

質問:

前述の.xmlファイルは、アップロードとビルドに数時間かかる場合があります。私の教授は、新しいモデルがバックグラウンドに送信され、ユーザーが完了するとメールを受信する間、ユーザーがすでに完了したモデルを使用してページを続行できるようにしたいと考えています。メールを送信するための資料を見つけましたが、ページを続行するための資料は見つかりませんでした。

AJAXを使用してページをロードすることについて何か聞いたことがありますか?

4

4 に答える 4

1

ページにファイル アップロード コントロールを配置する

<asp:FileUpload ID="FileUpload1" runat="server"/>

ファイルのアップロードを処理する http ハンドラーを作成します。

public class Handler : IHttpHandler {

    public void ProcessRequest (HttpContext context) {
        HttpPostedFile fileToUpload = context.Request.Files["Filedata"];
        string pathToSave = HttpContext.Current.Server.MapPath("~/Files/")
                            + fileToUpload.FileName;
        fileToUpload.SaveAs(pathToSave);

        //Process file
    }

    public bool IsReusable {
        get {
            return false;
        }
    }
}

uploadifyのようなアップロード プラグインをプロジェクトに統合できるかどうかを確認してください (jQuery が必要です)。

<script type = "text/javascript">
$(document).ready(function()
{
     $("#<%=FileUpload1.ClientID %>").uploadify(
     {
       'swf': 'Scripts/uploadify.swf',
       'uploader': 'Handler.ashx',
       'auto': true,
      'buttonText': 'Select File(s)'
     });
});
</script> 

これができない場合は、ajax の仕組みを理解する必要があります

Ajax は通常 XMLHttpRequest を使用しますが、これではローカル ファイルをエンコードしてサーバーに送信することはできません。
Flash SWF を使用して同じページでのアップロードを処理するか、非表示の 1x1 iframe のターゲットを持つフォームを使用することができます。

asp.net でのファイルのアップロードに関するこのブログに投稿されたコードを見つけました

于 2012-10-19T04:36:32.633 に答える
0

実際にアップロードを行う小さなi-frameを開くと、現在のページが引き続き機能すると思います。

したがって、現在のページで、ファイルの場所とファイル名などをすべて尋ねてから、i フレームで新しいページを開きます。その i-frame にソース ファイル/フォルダー、宛先ファイル/フォルダーを認識させ、バックグラウンドで動作させます。これで、現在のページは自由に作業を続行できます。

それが役立つことを願っています。

于 2012-10-19T05:05:24.707 に答える
-1

理想的には、ある種の非同期処理をセットアップする必要があります。個人的には、非同期とメッセージングにCeleryと RabbitMQを使用するのが好きです。

于 2012-10-19T02:07:01.987 に答える