J'ai toujours téléchargé des fichiers à l'aide de formulaires de formulaire pour télécharger des fichiers. J'ai également vu des gens télécharger des fichiers en utilisant JS, mais cela semble assez simple, donc je n'y ai pas accordé beaucoup d'attention. Aujourd'hui, j'ai soudainement voulu utiliser cette méthode pour télécharger des fichiers, et j'ai rencontré quelques problèmes au cours de cette période. Par conséquent, il est enregistré pour que vous puissiez le vérifier si vous rencontrez de tels problèmes à l'avenir.
La première chose est d'introduire des fichiers JS et AjaxFileupload, qui ne doivent pas être beaucoup disent.
Ensuite, il y a Ajax qui demande l'adresse d'arrière-plan. Le code est le suivant:
<div> <input type = "file" id = "upload" name = "upload" style = "font-size: 0; opacity: 0; width: 100%; height: 100%; position: absolu; gauche: 0; top: 0;" /> <span> sélectionner le fichier </span> </v> $ ("# upload"). Sur ("changer", function () {. '/ test / user / imgupload', // Type d'adresse de requête backend: 'post', // Méthode de demande Lorsque vous souhaitez soumettre un paramètre personnalisé, ce paramètre doit être défini sur SecureUri: false, // pour activer SecureUri, la valeur par défaut est false. «Json, le type de données renvoyé par le serveur peut être rempli, JSON. }, erreur: fonction (JSON, Status, E) {// La fonction de traitement exécutée automatiquement après l'échec de la soumission.Une fois le code frontal terminé, le code d'arrière-plan sera développé.
Package com.roc.test; import java.io.file; import java.util.list; import javax.servlet.http.httpservletRequest; import javax.servlet.http.httpservletResponse; javax.ws.rs.produces; import javax.ws.rs.queryparam; import javax.ws.rs.core.context; import javax.ws.rs.core.mediaType; import net.sf.fileitem; import; import org.apache.commons.fileupload.fileitem; org.apache.commons.fileupload.disk.diskfileItemfactory; import org.apache.commons.fileupload.servlet.servletfileupload; import org.jboss.resteasy.annotations.providers.jaxb.json.badfish; import org.springframeworkwork.sterreoType.Contre; net.sf.json.jsonObject; / ** * Fichier de téléchargement * @Author liaowp * * / @ contrôleur @ path ("user") public class uploadImg {@path ("/ imgupload") @posost @produces ("application / json) JSONObject upload (@QueryParam ("OrderId") String OrderID, @ Context HttpServLetRequest Request, @ context httpServLetResponse réponse) {jsonObject JSONOBj = new JSONObject (); String file_path = request.getSession (). GetServletContext (). GetRealPath ("/") + file.separator + "Corpfile" + file.separator; // Path de stockage de fichiers String upload_file_path = ""; File file = new File (file_path); if (! file.exists () &&! file.isdirectory ()) {// Si le dossier n'existe pas, créez un fichier.mkdir (); upload_file_path = file_path; } else {upload_file_path = file_path; } DiskfileItemfactory factory = new DiskFileItemFactory (); // set factory factory.setRepository (new File (file_path)); // set File Storage Emplacement Factory.SetSizethReshold (2048 * 1024); // Set Size, si le fichier est plus petit que la taille de set, mettez-le en mémoire, s'il est plus grand que ce qu'il est placé dans Disk ServletFilepload upload = new ServletFileupload (Factory); upload.setheDerencoding ("UTF-8"); // Ceci est le code de traitement des noms de fichiers chinois. En fait, il n'y a qu'une seule chaîne de ligne filename = ""; Liste de la liste <FichierItem>; JsonObject JSONOBJ = new JSONObject (); essayez {list = upload.parseRequest (request); pour (fichierItem item: list) {if (item.isformField ()) {String name = item.getFieldName (); String value = item.getString ("UTF-8"); } else {String name = item.getFieldName (); String value = item.getName (); filename = name + ".jpg"; if (item.getSize ()> 10485760) {// Bonjour, le fichier de téléchargement doit être inférieur à 10m! JSONOBJ.PUT ("Retcode", "100"); JSONOBJ.put ("Retmsg", "Bonjour, le téléchargement du fichier doit être inférieur à 10m!"):} else {// télécharger avec succès item.write (nouveau fichier (upload_file_path, nom de fichier)); System.out.println (file.separator + "corpfile" + file.separator + filename); jsonObj.put ("retcode", "0"); JSONOBJ.PUT ("RETMSG", "Bonjour, téléchargez avec succès!"); }}}}} catch (exception e) {// téléchargement a échoué e.printStackTrace (); JSONOBJ.put ("retcode", "9999"); JSONOBJ.PUT ("RETMSG", "Hello, Fichier Téléchargement Faiche"); } return JSONOBJ; }}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.