主页 > 知识库 > jquery中的ajax异步上传

jquery中的ajax异步上传

热门标签:电子围栏 团购网站 Linux服务器 Mysql连接数设置 服务器配置 科大讯飞语音识别系统 银行业务 阿里云

找了好久终于在网上找到了ajax异步上传文件的方法,不过网上大多数是php的 ,我改为struts2写的 大同小异,希望对学习java的人有一定的帮助。我上传的是音乐文件。

ajaxfileupload.js这个js文件是主要文件,一定要导入。

 jsp页面 ,其中我还做了div的隐藏*****************************

%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+
":"+request.getServerPort()+path+"/";
%>
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
html>
head>
 base href="%=basePath%>">
 title>Uploadify/title>
style type="text/css">
#div1{
color: #000000; font-size: 12px; 
  border: 0px solid #74B3DC;
  color: #000;
  background: #fff;
display:none;
}
/style>
 script type="text/javascript" src="js/jquery-1.3.2.min.js">/script>
   script type="text/javascript" src="js/ajaxfileupload.js">/script>
   !-- 执行上传文件操作的函数 -->
   script type="text/javascript">
     function ajaxFileUpload(){
        $.ajaxFileUpload(
          {
        url:'uploadAction.action',      //需要链接到服务器地址
        secureuri:false,
        fileElementId:'upload',           //文件选择框的id属性
        dataType: 'json',              //服务器返回的格式
        success: function (data, status)      //相当于java中try语句块的用法
        {  
        // alert(data);
          var ss =data;
         // alert(ss);
          var mp3Name = ss.split(";");
          for(var i=0; imp3Name.length;i++) {
           //alert(mp3Name[i]);
           $('#songName').val(mp3Name[0]);
           $('#songsiger').val(mp3Name[1]);
          }
          $('#result').html('添加成功');
        },
        error: function (data, status, e)      //相当于java中catch语句块的用法
        {
          //alert("222.");
          $('#result').html('添加失败');
        }
      }
        );
      target=document.getElementById('div1');
      if (target.style.display=="block"){
        target.style.display="none";
      } else {
        target.style.display="block";
      }
     }
   /script>
/head>
body>
   form method="post" action="uploadAction.action" enctype="multipart/form-data"> 
    input type="file" id="upload" name="upload"/>
    input type="button" value="上传文档" onclick="ajaxFileUpload()"/>
  div id="result">/div>
    div id="div1">
    歌曲input type="text" id="songName" name="songName" value="">
    歌手 input type="text" id="songsiger" name="songName" value="">
    input type="button" value="提交文档信息" />
    /div>
  /form>
 /body>
/html>

action上传后台代码*************************************

package action;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.json.annotations.JSON;
import org.farng.mp3.MP3File;
import org.farng.mp3.TagException;
import org.farng.mp3.id3.AbstractID3v2;
import org.farng.mp3.id3.ID3v1;
import org.farng.mp3.lyrics3.AbstractLyrics3;
import com.base.BaseAction;
import com.opensymphony.xwork2.ActionSupport;
public class Upload extends BaseAction {
private static final long serialVersionUID = -4848248679889814408L;
private String fileName;
private File upload;
public File getUpload() {
  return upload;
}
public void setUpload(File upload) {
  this.upload = upload;
}
public void setUploadFileName(String fileName) {
  this.fileName = fileName;
}
/*
 * 歌曲上传 上传操作
 */
public void uploadAction() throws IOException {
  System.out.println("进入了该方法!");
    String targetDirectory = "D:\\upload";
    System.out.println(upload);
    File target = new File(targetDirectory, fileName);
    FileUtils.copyFile(upload, target);
    String path = targetDirectory+"\\"+fileName;
     try { 
        MP3File file = new MP3File(path);//1,lyrics 
        AbstractID3v2 id3v2 = file.getID3v2Tag(); 
        ID3v1 id3v1 = file.getID3v1Tag(); 
        String ss = "";
        if (id3v2 != null) { 
          System.out.println("id3v2"); 
            ss = id3v2.getAlbumTitle()+";"+id3v2.getSongTitle()+";"+id3v2.getLeadArtist();
            //String str = "{'msg','"+ss+"'}";
            String str = ss;
            outPut(str);
          System.out.println(id3v2.getAlbumTitle());//专辑名 
          System.out.println(id3v2.getSongTitle());//歌曲名 
          System.out.println(id3v2.getLeadArtist());//歌手 
        } else { 
          System.out.println("id3v1"); 
          System.out.println(id3v1.getAlbumTitle()); 
          System.out.println(id3v1.getSongTitle()); 
          System.out.println(id3v1.getLeadArtist()); 
        } 
        AbstractLyrics3 lrc3Tag = file.getLyrics3Tag(); 
        if (lrc3Tag != null) { 
          String lyrics = lrc3Tag.getSongLyric(); 
          System.out.println(lyrics); 
        } 
      } catch (IOException e) { 
        e.printStackTrace(); 
      } catch (TagException e) { 
        e.printStackTrace(); 
      } 
      System.out.println("over"); 
 }
}

struts.xml配置文件*********************************

?xml version="1.0" encoding="UTF-8" ?>
!DOCTYPE struts PUBLIC
  "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  "http://struts.apache.org/dtds/struts-2.0.dtd">
struts>
  constant name="struts.i18n.encoding" value="UTF-8"/>
    //设置上传文件最大量
    constant name="struts.multipart.maxSize" value="10485760"/>
  
  package name="upload" namespace="/" extends="struts-default" >
     action name="uploadAction" class="action.Upload" method="uploadAction">
       result name="success">/index.jsp/result>
      
     /action>
  /package>
/struts>

  后来经过调试,发现火狐和ie不兼容 导致无执行争取结果,所以我上传ajaxfileupload.js 我修改了源码

以上是本文给大家介绍jquery中的ajax异步上传,希望对大家有所帮助。

您可能感兴趣的文章:
  • ajax实现异步文件或图片上传功能
  • ajax图片上传,图片异步上传,更新实例
  • ajax 异步上传带进度条视频并提取缩略图
  • Ajax异步文件上传与NodeJS express服务端处理
  • Ajax异步上传文件实例代码分享
  • ajax实现文件异步上传并回显文件相关信息功能示例
  • Ajax表单异步上传文件实例代码(包括文件域)
  • 表单上传功能实现 ajax文件异步上传
  • ajax异步实现文件分片上传实例代码

标签:衡水 蚌埠 衢州 萍乡 枣庄 江苏 大理 广元

巨人网络通讯声明:本文标题《jquery中的ajax异步上传》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266