


Einführung in die Verwendung des asynchronen Datei-Uploads ajaxFileUpload
In diesem Artikel wird hauptsächlich die einfache Verwendung von ajaxFileUpload zum asynchronen Hochladen von Dateien vorgestellt. Das jQuery-Plug-in AjaxFileUpload kann das Hochladen von Ajax-Dateien realisieren. Wenn Sie interessiert sind, können Sie mehr erfahren
Hier finden Sie eine kurze Einführung in ajaxFileUpload. Das jQuery-Plug-in AjaxFileUpload kann das Hochladen von Ajax-Dateien implementieren. Unser Projekt verwendet eine Architektur, die JSP und JS trennt, daher lautet der Code wie folgt.
Zuerst ist der JSP-Teil:
<!-- <form method="post"> --> <input type="file" name="n_file" id="fileToUpload" value="上传表格" /> <button id="upload1" class="btn btn-default">上传</button> <!-- </form> -->
Hier ist der Grund, warum ich das Formular auskommentiert habe, weil es in meinem JSP bereits ein anderes Formular gibt Während Während des Debugging-Prozesses habe ich festgestellt, dass möglicherweise ein Konflikt vorliegt, und habe das Formular auskommentiert. Es stellt sich heraus, dass ajaxFileUpload ohne Formular übermittelt werden kann:
$(function(){ //点击打开文件选择器 $("#upload1").on('click', function() { //选择文件之后执行上传 $.ajaxFileUpload({ url:'supplyDataReportUploadExcel', //url自己写 secureuri:false, //这个是啥没啥用 type:'post', fileElementId:'fileToUpload',//file标签的id dataType: 'json',//返回数据的类型 //data:{name:'logan'},//一同上传的数据 success: function (data, status) { // alert(data); // alert(data.msg); // alert(data.success); if(data.success){ alert("upload,success!!!"); window.location.href='supplyDataReport'; }else{ alert(data.msg); window.location.href='supplyDataReport'; } }/*, error: function (data, status, e) { alert(e); }*/ }); }); });
Mein js ist nicht gut, aber ich weiß, wie man dieses js verwendet und kann es nicht vollständig kopieren. Es muss mit der tatsächlichen Situation der Projektstruktur kombiniert werden, aber die Kommentare dazu, welche allgemeinen Parameter verwendet werden denn sind geschrieben. Beachten Sie unbedingt, dass der Beitragstyp mit der method=RequestMethod.POST der Controller-Methode übereinstimmt, die der Anforderung entspricht. Beachten Sie dataType:'json'. Achten Sie unbedingt auf die Groß- und Kleinschreibung von json.
ps: Hier möchte ich sagen, dass die Beurteilung, die ich data.success verwende, mit der nachfolgenden Entitätsklasse AjaxJson zusammenhängt. ! ! ! !
Übrigens müssen die entsprechenden js wie folgt in jsp eingeführt werden:
<script type="text/javascript">Core.js('./js/iface/upload');</script> <script type="text/javascript" src="libs/jquery/ajaxfileupload.js"></script>
Der im ersten eingeführte Upload Der Absatz ist der obige js-Inhalt, unser importierter js wurde gekapselt, also schreiben Sie ihn einfach direkt. Basierend auf der tatsächlichen Situation wird die folgende js-Datei des jQuery-Plug-Ins AjaxFileUpload verwendet.
Der nächste Schritt ist, wie die Controller-Methode reagiert:
@SuppressWarnings("resource") @RequestMapping(value = "/supplyDataReportUploadExcel", method = RequestMethod.POST) public @ResponseBody String supplyDataReportUploadExcel(HttpServletRequest request, HttpServletResponse response,MultipartFile n_file) throws Exception { AjaxJson json = new AjaxJson(); ObjectMapper mapper = new ObjectMapper(); UploadFormBackVo uploadFormBackVo = new UploadFormBackVo(); //判断是否是空的Excel 包括没有标题 if(n_file.getSize()>0){ try{ //先判断 文件名 是否符合规格 因为不知道怎么获取上传文件的路径 后期修改 //获取文件 //验证文件名 String fileName = n_file.getOriginalFilename(); String fileNewName = fileName.replaceAll(".xls", ""); String eL = "[a-zA-Z]+[0-9]{4}-[0-9]{2}-[0-9]{2}"; Pattern p = Pattern.compile(eL); Matcher m = p.matcher(fileNewName); boolean dateFlag = m.matches(); if (!dateFlag) { System.out.println("格式错误"); uploadFormBackVo.setFormName(n_file.getOriginalFilename()); uploadFormBackVo.setUploadTime(new Date()); uploadFormBackVo.setIfsuccess("上传失败,Excel文件名不符合规格!!!"); supplyDataReportService.insert(uploadFormBackVo); json.setSuccess(false); json.setMsg("Excel,NameError!!!"); String jsonStr = mapper.writeValueAsString(json); return jsonStr; } //上传文件 UploadUtil.SaveFileFromInputStream(n_file.getInputStream(), "D:/补数据报表文件", n_file.getOriginalFilename()); InputStream is2 = new FileInputStream("D:/补数据报表文件/"+n_file.getOriginalFilename()); //读取文件进行内容验证 ExcelReader excelReader = new ExcelReader(); Map<Integer, SupplyDataReportBackVo> supplyDataReportBackVos = new HashMap<Integer, SupplyDataReportBackVo>(); String jsonStr = excelReader.readExcelContent(is2,supplyDataReportBackVos,json,n_file); //判断 readExcelContent()解析Excel文件 是否符合规范 如果符合 修改相应数据 if(json.isSuccess()==true){ //遍历map 用value --》SupplyDataReportBackVo 调用 updateById方法 for(SupplyDataReportBackVo supplyDataReportBackVo : supplyDataReportBackVos.values()){ supplyDataReportService.updateById(supplyDataReportBackVo); } System.out.println("获得Excel表格的内容:"); for (int i = 1; i <= supplyDataReportBackVos.size(); i++) { System.out.println(supplyDataReportBackVos.get(i)); } //保存上传记录 uploadFormBackVo.setFormName(n_file.getOriginalFilename()); uploadFormBackVo.setUploadTime(new Date()); uploadFormBackVo.setIfsuccess("上传成功"); supplyDataReportService.insert(uploadFormBackVo); return jsonStr; } // 解析Excel 文件 中 有空值 保存这次上传的记录且删除已上传的Excel文件, 删除已上传的Excel文件已在 readExcelContent()中处理 uploadFormBackVo.setFormName(n_file.getOriginalFilename()); uploadFormBackVo.setUploadTime(new Date()); uploadFormBackVo.setIfsuccess("上传失败,Excel中有空值!!!"); supplyDataReportService.insert(uploadFormBackVo); return jsonStr; } catch (IOException e){ System.out.println(e.getMessage()); } }else{ //ajax返回的数据 json.setSuccess(false); json.setMsg("Upload File Null!!!!!"); String jsonStr = mapper.writeValueAsString(json); return jsonStr; } System.out.println("ajax请求成功"); return ""; / json.setMsg("upload,success!!!"); }
Achten Sie einfach auf ein paar Punkte in dieser Methode, die Der Rest liegt beim ursprünglichen Poster selbst. Für seine eigene Geschäftslogik ist die erste Anforderungsmethode in @RequestMapping und der zweite übergebene Parameter ist MultipartFile n_file. Diese n_file sollte dem Namensattribut im entsprechen jsp. Als Drittes ist die Annotation @ResponseBody für den Rückgabewert Sting zu beachten. Die verbleibenden zwei Dinge, auf die Sie achten sollten, sind AjaxJson und ObjectMapper.
AjaxJson ist eine selbst gekapselte Modellklasse, die zur Verarbeitung von Ajax verwendet wird. Sie kann auch Baidu oder Brainstorming verwenden wie man es benutzt. Fügen Sie AjaxJson unten ein:
package com.zhongxin.web.ops.adrule.model; import java.util.Map; public class AjaxJson { private boolean success = true; private String msg = "ok"; private Object obj = null; private Map<String, Object> attributes; public boolean isSuccess() { return success; } public void setSuccess(boolean success) { this.success = success; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public Object getObj() { return obj; } public void setObj(Object obj) { this.obj = obj; } public Map<String, Object> getAttributes() { return attributes; } public void setAttributes(Map<String, Object> attributes) { this.attributes = attributes; } }
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Lernen aller hilfreich ist Achtung auf die chinesische PHP-Website!
Verwandte Empfehlungen:
So laden Sie den Navigationsverlauf bei Verwendung der jQuery-Mobilklassenbibliothek
Die JQuery-Ajax-Technologie implementiert das Intervall N Wert in Sekunden an eine Seite übergeben
Das obige ist der detaillierte Inhalt vonEinführung in die Verwendung des asynchronen Datei-Uploads ajaxFileUpload. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Die Kraft des JavaScript -Frameworks liegt in der Vereinfachung der Entwicklung, der Verbesserung der Benutzererfahrung und der Anwendungsleistung. Betrachten Sie bei der Auswahl eines Frameworks: 1. Projektgröße und Komplexität, 2. Teamerfahrung, 3. Ökosystem und Community -Unterstützung.

Einführung Ich weiß, dass Sie es vielleicht seltsam finden. Was genau muss JavaScript, C und Browser tun? Sie scheinen nicht miteinander verbunden zu sein, aber tatsächlich spielen sie eine sehr wichtige Rolle in der modernen Webentwicklung. Heute werden wir die enge Verbindung zwischen diesen drei diskutieren. In diesem Artikel erfahren Sie, wie JavaScript im Browser ausgeführt wird, die Rolle von C in der Browser -Engine und wie sie zusammenarbeiten, um das Rendern und die Interaktion von Webseiten voranzutreiben. Wir alle kennen die Beziehung zwischen JavaScript und Browser. JavaScript ist die Kernsprache der Front-End-Entwicklung. Es läuft direkt im Browser und macht Webseiten lebhaft und interessant. Haben Sie sich jemals gefragt, warum Javascr

Node.js zeichnet sich bei effizienten E/A aus, vor allem bei Streams. Streams verarbeiten Daten inkrementell und vermeiden Speicherüberladung-ideal für große Dateien, Netzwerkaufgaben und Echtzeitanwendungen. Die Kombination von Streams mit der TypeScript -Sicherheit erzeugt eine POWE

Die Unterschiede in der Leistung und der Effizienz zwischen Python und JavaScript spiegeln sich hauptsächlich in: 1 wider: 1) Als interpretierter Sprache läuft Python langsam, weist jedoch eine hohe Entwicklungseffizienz auf und ist für eine schnelle Prototypentwicklung geeignet. 2) JavaScript ist auf einen einzelnen Thread im Browser beschränkt, aber Multi-Threading- und Asynchronen-E/A können verwendet werden, um die Leistung in Node.js zu verbessern, und beide haben Vorteile in tatsächlichen Projekten.

JavaScript stammt aus dem Jahr 1995 und wurde von Brandon Ike erstellt und realisierte die Sprache in C. 1.C-Sprache bietet Programmierfunktionen auf hoher Leistung und Systemebene für JavaScript. 2. Die Speicherverwaltung und die Leistungsoptimierung von JavaScript basieren auf C -Sprache. 3. Die plattformübergreifende Funktion der C-Sprache hilft JavaScript, auf verschiedenen Betriebssystemen effizient zu laufen.

JavaScript wird in Browsern und Node.js -Umgebungen ausgeführt und stützt sich auf die JavaScript -Engine, um Code zu analysieren und auszuführen. 1) abstrakter Syntaxbaum (AST) in der Parsenstufe erzeugen; 2) AST in die Kompilierungsphase in Bytecode oder Maschinencode umwandeln; 3) Führen Sie den kompilierten Code in der Ausführungsstufe aus.

Zu den zukünftigen Trends von Python und JavaScript gehören: 1. Python wird seine Position in den Bereichen wissenschaftlicher Computer und KI konsolidieren. JavaScript wird die Entwicklung der Web-Technologie fördern. Beide werden die Anwendungsszenarien in ihren jeweiligen Bereichen weiter erweitern und mehr Durchbrüche in der Leistung erzielen.

Sowohl Python als auch JavaScripts Entscheidungen in Entwicklungsumgebungen sind wichtig. 1) Die Entwicklungsumgebung von Python umfasst Pycharm, Jupyternotebook und Anaconda, die für Datenwissenschaft und schnelles Prototyping geeignet sind. 2) Die Entwicklungsumgebung von JavaScript umfasst Node.JS, VSCODE und WebPack, die für die Entwicklung von Front-End- und Back-End-Entwicklung geeignet sind. Durch die Auswahl der richtigen Tools nach den Projektbedürfnissen kann die Entwicklung der Entwicklung und die Erfolgsquote der Projekte verbessert werden.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

Dreamweaver CS6
Visuelle Webentwicklungstools

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.
