0

私は基本的に、HTML ページから asp.net C# ページに画像を投稿して、そのデータをサーバーに投稿することを検討しています。

多くの企業向けおよび Web フォーム向けのソリューションを見つけましたが、Web フォームを回避する別の方法はありますか? 私は生成された HTML の大ファンではありません。基本的に、疑似コードは次のようになります。

<script type="text/javascript">
window.onload = function() {
    button.onclick = function() {
        http = new XMLHttpRequest();
        url = "imageuploader.aspx";
        params = <dunno how to post file data. Help?>
        http.open("POST", url, true);
        http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        http.onreadystatechange = function () {
                  Test a bunch of stuff to see if image has been uploaded or we're still working on it
            }
    }
 }
 </script>

imageuploader.aspx

<%@ Page language="C#" validateRequest=false %>
<script language="C#" runat="server">
    private void Page_Load (object sender, System.EventArgs e) {
         <no clue what to do here since I've never done file uploading before>
    }
<script>
4

1 に答える 1

0

まず、XMLHttpRequest はファイルのアップロードをサポートしていません。jQuery Form Pluginを使用できます。Form Plugin は非表示の iframe 要素を使用してタスクを支援します。これは一般的な手法ですが、固有の制限があります。iframe 要素は、フォームの送信操作のターゲットとして使用されます。これは、サーバーの応答が iframe に書き込まれることを意味します。

他にもいくつかオプションがありますが、

http://www.phpletter.com/Demo/AjaxFileUpload-Demo/

http://pixelcone.com/jquery/ajax-file-upload-script/

サーバー側では、Request.Filesを使用して、配列コレクション内のすべてのポストされたファイルにアクセスできます。

于 2011-10-07T18:35:24.447 に答える