ASP.NET JavaScript Ajax文件上传

时间:2011-10-07 18:22:09

标签: c# javascript asp.net ajax image-uploading

我基本上希望从HTML页面发布和映像到asp.net C#页面,然后将这些数据发布到服务器。

我发现了许多企业级和网络形式的解决方案,但还有另一种方法可以避免使用网络表单吗?我不是生成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>

1 个答案:

答案 0 :(得分: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 使您可以访问数组集合中所有已发布的文件。