ASP.NET 不使用服务器控件  如何实现客户端上传文件到服务器,求高手指教,越详细越好。谢谢急急急

解决方案 »

  1.   

    swfupload
      

  2.   

    在html中,上传文件使用<input type=file>元素。asp.net本来就是一个html代码生成器,它负责给浏览器端输出html。所以,如果你不想在aspx页面设计上使用高级的服务器控件,那么你也可以使用最低级的html啊。你在学习asp.net之前没有学习使用html/javascript进行网站开发么?那么你需要将html的那些主要元素都学习一遍。而在服务器端,asp.net可以接收文件内容。如果你使用Page(很显然,Page本身就是一种服务器控件),里边不嵌入任何服务器控件,当然也是可以读取文件的。例如随便搜一个文章:http://www.hellocode.cn/thread-94-1-1.html
    它就是使用代码HttpPostedFile myFile = context.Request.Files["fulFile"];  这一句话来获得上传的文件的。
      

  3.   

    原理:
    在表单里加入文件域,然后提交表单,asp.net回传机制也是利用表单来回传的,要注意冲突
    <form id="fileUp" method="post" action="FileReceive.aspx" enctype="multipart/form-data">
        <input type="file" name="input_file" />
        <input type="file" name="input_file" />
        <input type="submit" value="开始上传" />
    </form>接收页FileReceive.aspx
    HttpFileCollection files = HttpContext.Current.Request.Files;
    for (int i = 0; i < files.Count; i++)
    {
         HttpPostedFile file = files[i];
        //...
        //逐个保存
    }要异步的话,把提交页放在iframe里
    原理就这样,网上也有现成的异步上传插件,当然异步上传也可以利用flash来提交文件,如1楼提到的插件
      

  4.   

    随然这个文章中是使用ashx来接收文件,显然是,同样的代码在Page中也成立。不管你使用还是不是用FileUpload服务器控件,只要是客户端的Action中标记了页面应该给这个Page提交文件,并且enctype是 multipart/form-data 类型,那么这客户端提交的文件就能在asp.net程序中使用Page.Request.Files来取得上传的文件。asp.net已经封装得非常方便了。
      

  5.   

    用html控件啊,3楼、5楼已说得很详细了!
      

  6.   

    <form id="fileUp" method="post" action="FileReceive.aspx" enctype="multipart/form-data">注意加这个~我刚刚学的时候 偶尔会忘记加了~~