Struts2 使用Jquery+ajax 文件上传
Posted 京魂
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struts2 使用Jquery+ajax 文件上传相关的知识,希望对你有一定的参考价值。
话不多说 直接上代码
前台js:
1 var formData = new FormData(); 2 formData.append("file1",$("#file1")[0].files[0]);//第一个file1代表后台文件属性名,第二个file1表示html中input的id 3 $.ajax({ 4 type:"post", 5 url:"ajax/uploadFile", 6 data:formData, 7 processData : false, 8 contentType : false, 9 success : function(res) { 10 console.log(res); 11 if(res=="success"){ 12 $("#labResult").text("文件上传成功"); 13 } 14 }, 15 error : function(msg) { 16 console.log(msg.responsText); 17 } 18 });
后台java:
1 import java.io.File; 2 import java.io.FileInputStream; 3 import java.io.FileOutputStream; 4 import java.io.IOException; 5 import java.io.InputStream; 6 import java.io.OutputStream; 7 8 import javax.servlet.http.HttpServletRequest; 9 import javax.servlet.http.HttpServletResponse; 10 11 import org.apache.struts2.ServletActionContext; 12 13 import com.opensymphony.xwork2.ActionContext; 14 import com.opensymphony.xwork2.ActionSupport; 15 16 public class UploadAction extends ActionSupport{ 17 private File file1 ; 18 private String file1FileName ;//FileName为固定写法 19 public File getFile1() { 20 return file1; 21 } 22 public void setFile1(File file1) { 23 this.file1 = file1; 24 } 25 public String getFile1FileName() { 26 return file1FileName; 27 } 28 public void setFile1FileName(String file1FileName) { 29 this.file1FileName = file1FileName; 30 } 31 public String uploadFile() throws Exception { 32 33 String path = ServletActionContext.getRequest().getServletContext().getRealPath("/WEB-INF/upload"); 34 //查看是否存在目录 不存在则创建 35 File file = new File(path); 36 //如果目录不存在 37 if(!file.exists()){ 38 file.mkdirs(); 39 } 40 //文件不为空 则上传 41 if(file1!=null){ 42 //输出流 43 OutputStream os = new FileOutputStream(new File(path,file1FileName)); 44 //输入流 45 InputStream is = new FileInputStream(file1); 46 47 byte[] buf = new byte[1024]; 48 int length = 0 ; 49 50 while(-1 != (length = is.read(buf) ) ) 51 { 52 os.write(buf, 0, length) ; 53 } 54 is.close(); 55 os.close(); 56 } 57 return "success"; 58 } 59 60 public void uploadFile(){ 61 System.out.println("file1:"+file1+"."); 62 System.out.println("file1FileName:"+file1FileName+"."); 63 String path=""; 64 try { 65 path=uploadFile(); 66 HttpServletResponse response = ServletActionContext.getResponse(); 67 response.setContentType("text/html;charset=utf-8"); 68 response.getWriter().write(path); 69 } catch (Exception e) { 70 e.printStackTrace(); 71 } 72 } 73 }
struts:
<package name="ajax" extends="json-default" namespace="/ajax"> <action name="uploadFile" class="包名.UploadAction" method="uploadFile"></action> </package>
有啥不懂,底下留言。
以上是关于Struts2 使用Jquery+ajax 文件上传的主要内容,如果未能解决你的问题,请参考以下文章
Struts2+Jquery实现ajax并返回json类型数据
Struts2 JQuery:Ajax 提交表单、服务器表单验证和成功重定向