Récemment, je dois télécharger des fichiers de fichiers dans le projet. Je l'ai toujours soumis par formulaire auparavant. J'ai essayé AjaxForm et il pense que c'est très utile. J'ai écrit une marque d'essai pour une utilisation future.
Préparation:
Télécharger jQuery-Form.js
Pot connexe:
Commons-fileupload-1.1.1.jar
Commons-io-1.3.2.jar
Configurez MultipartResolver dans Spring-Servlet.xml:
<bean id = "multipartreSolver"> <propriété name = "defayencoding" value = "utf-8" /> <propriété name = "maxuploadSize" value = "10485760000" /> <propriété name = "maxinMemorySize" value = "40960" /> </ean>
C'est un must, sinon cela ne fonctionnera pas.
page:
<! Doctype html public "- // w3c // dtd html 4.01 transitional // en" "http://www.w3.org/tr/html4/loose.dtd"><%@ Page Language =" java "contenuSype =" Text / Html; charset = "utf-8" %> <html> <! - - Auteur (s): Xieshuang- Date: 2016-06-20 13: 46: 20- Description: -> <A-Head> <Title> Title </ Title> <Meta Http-Equiv = "Content-Type" Content = "Text / Html; Charset = utf-8" /> <script " src = "<% = request.getContextPath ()%> / commun / nui / nui.js" type = "text / javascript"> </ script> <script src = "<% = request.getContextPath ()%> / Common / Nui / jQuery / jQuery-for.js" Type = "text / javascrip src = "<% = request.getContextPath ()%> / page4Nui / Master / projectType / js / projectType_import.js"> </ script> <script type = "Text / javascrip style = "padding-top: 5px; min-width: 300px; min-height: 180px;"> <form id = "fileupload" metheth = "post" enctype = "multipart / form-data"> <div id = "dataImport"> <table name = "file"> <font style = "couleur: rouge; width: 5%;"> * </font> </td> </tr> </ table> </div> <div align = "Center"> <entrée iConcls = "icon-ok" value = "ok" type = "soumider" /> <span style = "display: line-block; width: 25px;"> </ span iconcls = "icon-cancel" onclick = "annuler"> annuler </a> </div> </ form> </div> </od body> </html>
Core JS:
var msg; $ (function () {nui.parse (); // configuration ajax var options = {url: contextPath + "/ webApp / cfprojectType / importExcel", beforesubmit: showRequest, // présent: showResponse, // traitement complétion resetform: true, dataType: 'json'}; $ ('# # filep').). // Remarque $ (this) .ajaxSubmit (options); return false; // empêche la boîte de dialogue de fermer automatiquement});}) // exécuter la fonction de rappel réussie ShowResponse (e) {nui.hideMessageBox (msg); if (e.ImportFlag == true) {closewindow ("ok"); } else {// Une gestion des erreurs}} // une vérification avant la fonction de soumission showRequest (formdata, jqform, options) {if (formdata [0] .value == "" || formdata [0] .value == null) {nui.alert ("s'il vous plaît sélectionnez File"); retourne false; } var filename = $ ("# uploadfile"). Val (). Split ("//"). Pop (); var strS = new Array (); // définir un tableau strS = filename.split ('.'); var suffixe = strs [strs .length - 1]; if (suffixe! = 'xls' && suffix! = 'xlsx') {nui.alert ("Veuillez sélectionner le fichier excel!"); retourne false; } msg = nui.loading ("chargement", "s'il vous plaît attendre");}Code Java:
@SuppressWarnings ("Unchecked") @ requestmapping ("/ webApp / cfprojectType / importExcel") @ réponsebodypublic map <string, objet> importExcel (@RequestParam ("file") multipartfile [] fichiers, httpservlerequest request) lance {// starttim = system.currenttimemillis;); FIS ENTROYSTREAM; fis = null; Fichier filein = null; essayez {pour (multipartFile myFile: fichiers) {if (! myFile.iSempty ()) {String realPath = request.getSession (). getServletContext (). getRealPath ("/ export"); fileIn = nouveau fichier (realPath); // juge si le répertoire où le fichier téléchargé existe if (! Filein.exists () &&! Filein.isdirectory ()) {// Créer le répertoire filein.mkdirs (path); } // Copiez le fichier téléchargé dans le dossier myfile.transfert (nouveau fichier (path + nom de fichier)); }}}}Ici, j'ai utilisé une autre méthode FileUtils.copyInputStreamtoFile (InputStream Arg0, fichier arg1) avant, qui peut également enregistrer le fichier sur le chemin.
Pour un contenu plus excitant, veuillez vous référer aux sujets spéciaux "Résumé de la technologie de téléchargement AJAX", "Résumé de l'opération de téléchargement de fichiers JavaScript" et "JQuery Upload Operation Résumé" pour l'apprentissage.
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.