时间:2021-05-26
找了好久终于在网上找到了ajax异步上传文件的方法,不过网上大多数是php的 ,我改为struts2写的 大同小异,希望对学习java的人有一定的帮助。我上传的是音乐文件。
ajaxfileupload.js这个js文件是主要文件,一定要导入。
jsp页面 ,其中我还做了div的隐藏*****************************
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异步上传,希望对大家有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在前端页面开发的过程中,经常使用到Ajax请求,异步提交表单数据,或者异步刷新页面。一般来说,使用Jquery中的$.ajax,$.post,$.getJSON
jquery中ajax方法有个属性async用于控制同步和异步,默认是true,即ajax请求默认是异步请求,有时项目中会用到AJAX同步。这个同步的意思是当J
在前端页面开发的过程中,经常使用到Ajax请求,异步提交表单数据,或者异步刷新页面。一般来说,使用Jquery中的$.ajax,$.post,$.getJSON
今天遇到了一个很都疼的问题。在一个函数中调用了JQuery的异步函数$.ajax,然后在$.ajax函数外之后又有一段Jquery代码。每次都是在$.ajax之
jquery插件源码:/***对jquery中$.ajax进行封装,以便加入锁屏功能*isAsync是否为异步请求,默认为true*isLock是否锁屏,默认是