很多网友们都会想在网上找关于jquery.html" target="_blank">jquery中实现ajax异步上传的方法的内容,但是网上基本都是关于php的,那么今天就让错新小编一起去看看jquery中的ajax异步上传详细内容吧。
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 我修改了源码
本文中关于jquery中实现ajax异步上传的方法是改为struts2写的 大同小,希望对学习java的人有一定的帮助。
新闻热点
疑难解答
图片精选