ファイルfileのformフォーム取得ファイルを含むStreamストリームを、net c菗提出する。

2247 ワード

1.フロントのコード 
    IDのあるformを書きたいですが、runal="server"属性はありません。一つのページでは、この属性のフォームは一つしかないからです。
もう一つはnameのiframeがあります。そのスタイルを非表示にします。つまりdisplayはnoneです。iframeを使うメリットは、このフォームを提出することです。
ページを更新しません。この見えないiframeを更新します。
    フォームのtargetをiframeのname値に設定し、フォームのactionをフォームに提出する処理プログラムに設定します。
この処理プログラムでは、フォーム内のname属性を持つコントロールの値をすべて受信します。ファイルを含みます。
<input type=「file」name=「uploadfile」id=「uploadfile」/>
    WebFormのファイルをサーバーにアップロードするには.net自身のFileUpLoadコントロールは使えません。権限の問題があるため、解析できないようです。したがって、本明細書で使用されるフォーム形式のpostを使って、受信側でC〓コードを使用する。  var file=context.Request.Files[0] var stream=file.InputStream;を選択します。

 <form id="fileInfo" enctype="multipart/form-data" target="screct_frame" method="POST" action="../../Handlers/needsPlanCreateHandler.ashx?sign=readExcel">
    
     <input type="file" name="uploadfile" id="uploadfile" />
     <button class="btn btn-default" type="submit" >  </button>                                        
                                       
 </form>
 <iframe name="screct_frame" style="display: none;"></iframe>
 
2.一般的な処理プログラムコード、つまり上のformで提出されたaction端の処理コードです。
private void ReadExcel(HttpContext context)
        {
            context.Response.ContentType = "text/html";
            try
            {
                var file = context.Request.Files[0];
                if (file.FileName == "")
                {
                    context.Response.Write("<script>parent.callback('      ');</script>");
                }
                var stream = file.InputStream;
                //            
                
            }
            catch (Exception ex)
            {
                context.Response.Write("<script>parent.callback(" + ex.ToString() + ");</script>");
            }
        }
は、上記のparent.calback()という方法を説明しています。
calback()はiframeがいるページで定義されているjs方法です。前にparentを使う時は、
現在提出されているのはiframeで、parentを使ってページオブジェクトを取得できます。iframeはparentまたはtopを通じて親ページを見つけることができます。
親ページのjsスクリプトを実行できます。