jquery Ajaxupload应用

AjaxUpload

  Jquery插件AjaxUpload实现文件上功能无需form,即可实现Ajax方式的文件上,当然根据需要也可以form

工作

1、下Jquery和文件上插件AjaxUpload

2uploadfile.html,并引入Jquery包和AjaxUpload插件

<script src="js/jquery-1.3.js"></script>
<script src="js/ajaxupload.3.5.js"></script>

3、根据Jquery插件AjaxUpload的需要,建一个触Ajax文件上功能的DIV

<ul>
    <
li id="example">
    <
div id="upload_button">文件上</div>
    <
p>已上的文件列表:</p>
            <
ol class="files"></ol>
</
ul>

:由下面的代可以看到Jquery插件AjaxUpload是根据upload_buttonDIV文件上功能。 

前台JS

  在代中我置了开关,根据需要可以匹配上文件型,同也可以置是以Ajax方式实现单个文件上传还是多个文件上

$(document).ready(function(){
    var button = $('#upload_button'), interval;
    var fileType = "all",fileNum = "one";
    new AjaxUpload(button,{
        action: 'do/uploadfile.php',
        /*data:{
            'buttoninfo':button.text()
        },*/
        name: 'userfile',
        onSubmit : function(file, ext){
            if(fileType == "pic")
            {
                if (ext && /^(jpg|png|jpeg|gif)$/.test(ext)){
                    this.setData({
                        'info': '
文件为图'
                    });
                } else {
                    $('<li></li>').appendTo('#example .files').text('
型文件,');
                    return false;              
                }
            }
                       
            button.text('
文件上');
           
            if(fileNum == 'one')
                this.disable();
           
            interval = window.setInterval(function(){
                var text = button.text();
                if (text.length < 14){
                    button.text(text + '.');                   
                } else {
                    button.text('
文件上');            
                }
            }, 200);
        },
        onComplete: function(file, response){
            if(response != "success")
                alert(response);
               
            button.text('
文件上');
                       
            window.clearInterval(interval);
                       
            this.enable();
           
            if(response == "success");
                $('<li></li>').appendTo('#example .files').text(file);                 
        }
    });
 
});


1行:$(document).ready()函数,Jquery中的函数,似于window.load,使用个函数可在DOM入就够读取并操纵时立即定的函数。

3行:fileTypefileNum参数代表上文件的型和数量,默认值为可上所有型文件,同一时间只能上一个文件,如想上传图片文件或同多个文件,可将两个值变为picmore

6~8行:POST到服器的数据,你可以置静态值也可以通JqueryDOM操作函数得一些动态值,比如formINPUT等。

9行:等同于前端

<input type="file" name="userfile">

器端$_FILES['userfile']

10~36行:文件上前触的功能。

11~21行:片文件型的过滤功能,Jquery setData函数用来POST至服器端的

25~26行:置同只上一个文件是多个文件,如果只上一个文件,将触禁掉。如果要多传输几个文件,在服器端PHP文件上程序中MAXSIZE,当然上文件的大小限制同PHP.INI文件中的置也有关。

28~35行:在文件上传过程中每隔200毫秒动态更新一次按的文字,已实现动态提示的效果。window.setInterval函数用来每隔指定的时间行一次内置的函数,交互时间单豪秒。

37~49行:文件上功能完成后触的功能,根据返回如果服器端报错前端通ALERT方式提示出信息。

 

 

 

<script>

   $(document).ready(function(){

      

          var thumb = $('img#thumb');    

      

          thumb.mouseover(function() {

                     thumb.css("border","2px dotted red");

          });

          thumb.mouseout(function() {

                     thumb.css("border","none");

          });

          thumb.click(function() {

                     $("span#uploadinfo").css("visibility","hidden");

                     $("span#uploadarea").css("visibility","visible");

          });

      

          new AjaxUpload('imageUpload', {

                 action: $('form#newHotnessForm').attr('action'),

                 name: 'image',

                 onSubmit: function(file, extension) {

                            $('div.preview').addClass('loading');

                 },

                 onComplete: function(file, response) {

                        thumb.load(function(){

                               $('div.preview').removeClass('loading');

                               thumb.unbind();

                        });

                 var r = JSON.parse(response);

                    

                 thumb.attr('src', r.uri);

                 $("span#uploadinfo").text(r.message);

                 $("span#uploadinfo").css("visibility","visible");

                 $("span#uploadarea").css("visibility","hidden");

                 }

         });

   });

             

</script>

<table width="110" height="140" border="0" cellpadding="0" cellspacing="0">

       <tr>

              <td align="center" class="photo_border">

                     <div class="seven columns">

                            <div class="preview">

                                   <img width="90" height="120" alt="载图" src="${f.pic}" id="thumb">

                            </div>

                            <span id="uploadinfo">击图片更新个人照片</span>

                            <span id="uploadarea" class="wrap hotness" style="visibility:hidden">

                                   <form action="imageUpload.do" id="newHotnessForm">

                                          <input type="file" size="20"  id="imageUpload" class=" ">

                                   </form>

                            </span>

                     </div>

              </td>

       </tr>

</table>

 

 

 

Html代码如上,传给后台的file名为image

后台代码为:

@RequestMapping(value = { "/imageUpload.do" })

       public String fmUpload(HttpServletRequest request, ModelMap model) {

             

              String PhotoShowCardNo = null;

              FileOutputStream fos = null;

              String err ="";

try {
   SessionUser u = (SessionUser) WebUtils.getSessionAttribute(request,
     "SessionUser");
   MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
   MultipartFile file = multipartRequest.getFile("image");// 获得文件

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值