Struts2 使用Jquery+ajax 文件上传
16lz
2021-01-22
话不多说 直接上代码
前台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>
有啥不懂,底下留言。
更多相关文章
- 前台jquery+ajax向后台请求数据,后台返回json,前台显示
- 注册的时候,点击注册按钮,用jquery怎么直接在前端打印后台返回的信
- 26、ASP.NET MVC入门到精通——后台管理区域及分离、Js压缩、css
- 请教一下ajax代替frame在后台管理系统布局上应当怎么应用?
- 您试图显示配置为只允许执行和脚本权限的目录中的 HTML 页
- iframe调用后台方法通过response返回html代码
- iis aspx常见错误 HTTP 错误 404 - 文件或目录未找到。
- 仿wordpress管理后台设计的后台管理框架
- 提交一个表单(后台生成id),点击保存并一步后切换到下一个tab中,此t