jquery ajax異步上傳

  找了很久終於在網上找到了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; i<mp3Name.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 我修改了源碼
相關文章
相關標籤/搜索