Heim >Web-Frontend >js-Tutorial >FormData und Spring MVC implementieren die Funktion zum Herunterladen von Ajax-Dateien
Dieses Mal bringe ich Ihnen FormData und Spring MVC zur Implementierung der Ajax-Funktion zum Herunterladen von Dateien . Was sind die Vorsichtsmaßnahmen für FormData und Spring MVC zur Implementierung der Funktion zum Herunterladen von Ajax-Dateien? Das Folgende ist ein praktischer Fall. Schauen wir uns das an.
Ajax-Datei-Download
Verwendung des FormData-Objekts und Spring MVC zur Implementierung der Ajax-Datei-Upload-Funktion:
Schritte
1. Komponenten importieren und statische Skripte vorbereiten
<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.2</version> </dependency> <h1>Ajax 文件上载</h1> <input type="file" id="file1"> <br> <input type="file" id="file2"> <br> <input type="button" id="upload" value="上载" > <p id="result"></p>
1. Ereignisse an Schaltflächen binden
$("upload").click(ajaxUpload);
2 .Holen Sie sich die Datei
var file1 = $("#file1")[0].files[0]; var file2 = $("#file2")[0].files[0];
3. Erstellen Sie das Formularobjekt im Speicher und fügen Sie die an den Server übertragenen Daten hinzu
//创建内存中的表单对象 var form = new FormData(); //向其中添加要传输的数据 form.append("userfile1", file1); form.append("userfile2", file2);
4.ajax() Objekt hochladen
$.ajax({ url:'user/upload.do',//请求地址 data: form, //请求参数 type: 'POST', //请求类型 dataType: 'json',//服务器返回的数据类型 contentType: false,//没有设置任何内容类型头信息 processData: false, //见jQuery_api详解 success: function(obj){ //成功时回调函数,obj表示服务器返回的数据 if(obj.state==0){ $('#result').html("成功!"); } } });
5.Spring-MVC-Präsentationsschicht
@RequestMapping("/upload.do") @ResponseBody public JsonResult upload( MultipartFile userfile1, MultipartFile userfile2) throws Exception{ //Spring MVC 中可以利用 MultipartFile //接收 上载的文件! 文件中的一切数据 //都可以从 MultipartFile 对象中找到 //获取上再是原始文件名 String file1 = userfile1.getOriginalFilename(); String file2 = userfile2.getOriginalFilename(); System.out.println(file1); System.out.println(file2); //保存文件的3种方法: //1. transferTo(目标文件) // 将文件直接保存到目标文件, 可以处理大文件 //2. userfile1.getBytes() 获取文件的全部数据 // 将文件全部读取到内存, 适合处理小文件!! //3. userfile1.getInputStream() // 获取上载文件的流, 适合处理大文件 //保存的目标文件夹: /home/soft01/demo File dir = new File("D:/demo"); dir.mkdir(); File f1 = new File(dir, file1); File f2 = new File(dir, file2); //第一种保存文件 //userfile1.transferTo(f1); //userfile2.transferTo(f2); //第三种 利用流复制数据 InputStream in1 = userfile1.getInputStream(); FileOutputStream out1 = new FileOutputStream(f1); int b; while((b=in1.read())!=-1){ out1.write(b); } in1.close(); out1.close(); InputStream in2 = userfile2.getInputStream(); FileOutputStream out2= new FileOutputStream(f2); byte[] buf= new byte[8*1024]; int n; while((n=in2.read(buf))!=-1){ out2.write(buf, 0, n); } in2.close(); out2.close(); return new JsonResult(true); }
Ich glaube, Sie haben die Methode gemeistert, nachdem Sie den Fall in diesem Artikel gelesen haben Weitere Informationen finden Sie auf der chinesischen PHP-Website. Weitere verwandte Artikel!
Empfohlene Lektüre:
So implementieren Sie eine domänenübergreifende WebApi-Ajax-Anfrage mit CORS
So implementieren Sie das dynamische Laden von Kombinationsfelder mit Ajax (mit Code)
Das obige ist der detaillierte Inhalt vonFormData und Spring MVC implementieren die Funktion zum Herunterladen von Ajax-Dateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!