2

組み込みのMicrochipTCP/IPスタックPic32ボードを使用しているクライアントのWebページインターフェイスにアップロードの進行状況インジケーターを表示する必要があります。Webページには、クライアントが適切な.hexまたは.wavファイルを参照して選択してボードメモリにアップロードできるようにするアップロードファイルページがあります。これにより、最終的にそのファイルをブートストラップできるようになります。私の問題は、ファイルがアップロードされているときに、クライアントがファイルの進行状況を認識せず、ページから移動してダウンロードをキャンセルする可能性があることです。クライアントに情報を提供し続けるために、アップロードの進行状況を示すインジケーターが必要です。アップロードする必要のあるさまざまなインスタンス用に5つのアップロードボックスがあることに注意してください。一度に1つのアップロードのみを許可します。

これがhtmlセクションのコードです:

    <table width="900" border="0" cellpadding="1" class="uploadTable">
      <tr>
        <td width="420" rowspan="2"><form action="fileupload.html" method="post"   enctype="multipart/form-data">
          <div class="uploadBox"> 
            <p><b>Update Primary System Firmware</b></p>
            <p>File: 
              <input type="file" name="firmwaremain" size="30" />
              &nbsp;
              <input type="submit" value="Upload" />
            </p>
          </div>
        </form></td>
        <td width="252" height="23"><div align="center"><strong>Current File Name:  </strong></div></td>
        <td width="104"><div align="center"><strong>Current File Size:</strong></div> </td>
        <td width="104"><div align="center"><strong>File Upload Date:</strong></div></td>
      </tr>
      <tr>
        <td height="40"><div align="center">~curFirmName~</div></td>
        <td width="104"><div align="center">~curFirmSize~</div></td>
        <td width="104"><div align="center">~curFirmDate~</div></td>
        </tr>
    </table>

MicrochipのcustomHTTPApp.cコードを利用できますが、ここに投稿するには面倒です。

必要に応じてメールやチャットができます。写真を投稿する担当者がいません。私のWebインターフェイスサイトはスタンドアロンボードにあるため、リンクはありません。

よろしくお願いします!

-ジョシュ

4

1 に答える 1

1

基本的な概要/アイデア:

  • JavaScriptタイムアウトを使用して、N秒ごとにURLをポーリングしますsetTimeout(1000*N), "getProgress()");type="file" inputこれは、タグのonchangeから呼び出されます
  • JS getProgress関数は、次のURLにAjaxリクエストを送信します。http//localhost/uploadProgress
  • JS getProgress関数は、ファイルのアップロードが完了していない場合、それ自体でsetTimeoutを再度呼び出します(同じコード)。
  • 進行状況URLは、現在アップロード中のファイルの進行状況をパーセンテージ(おそらくバイト?)でJSON文字列として返します:{progress: "50"}
  • Nピクセル幅のDIVと、Ajax呼び出しによって返されるパーセンテージ値に等しい幅id="progress-complete"のネストされたDIVを用意しますid="progress"

それが役に立ったら、私がそれを拡張できるかどうか教えてください。始めるためにどこかが必要な場合に備えて、これを投稿しています。

于 2012-02-10T22:53:00.097 に答える