ASP.NET本质论
上QQ阅读APP看书,第一时间看更新

2.6.1 无刷新的上传:jQuery form

使用FileUpload是需要刷新页面的,在当前的Web 2.0之下,显然有点不合时宜。jQuery form可以实现无刷新的文件上传。项目的地址:http://malsup.com/jquery/form/。

jQuery form是一个脚本库,它通过在页面中动态嵌入一个iFrame,使用iFrame去上传文件,来实现无页面刷新的文件上传。不过,服务器端的处理其实就是正常的文件上传过程,我们可以直接使用ASP.NET内置的上传处理。一定要记得设置足够大的请求大小。

使用方式如下:

1)创建一个标准的上传文件表单。

<form id="myForm"action="comment.php"method="post">
    Name:<input type="text"name="name"/>
    Comment:<textarea name="comment"></textarea>
    <input type="submit"value="Submit Comment"/>
</form>

2)在页面中加入脚本。

<html>
<head>
    <script type="text/javascript"src="jquery-1.3.2.js"></script>
    <script type="text/javascript"src="jquery.form.js"></script>
    <script type="text/javascript">
        //wait for the DOM to be loaded
        $(document).ready(function(){
            //bind 'myForm' and provide a simple callback function
            $('#myForm').ajaxForm(function(){
                alert("Thank you for your comment!");
            });
        });
    </script>
</head>

需要注意的是,服务器返回的ContentType,由于在使用iFrame实现上传的时候,服务器返回的内容将会被赋予这个iFrame,所以,返回内容的类型最好是HTML或者XML,如果是返回JSON或者脚本的话,可以使用textarea 包围起来。

<textarea>
    for (var i=0; i < 10; i++){
        //do some processing
    }
</textarea>

脚本库的下载地址:http://malsup.com/jquery/form/#download。