Ich habe Dateien immer mit Formularen mit Formularen zum Hochladen von Dateien hochgeladen. Ich habe auch gesehen, wie Leute Dateien mit JS hochladen, aber es scheint ganz einfach, also habe ich nicht viel Aufmerksamkeit geschenkt. Heute wollte ich plötzlich diese Methode verwenden, um Dateien hochzuladen, und habe in diesem Zeitraum einige Probleme gestoßen. Daher wird es aufgezeichnet, damit Sie es überprüfen können, wenn Sie in Zukunft solchen Problemen auftreten.
Das erste ist, JS- und AjaxFileUpload -Dateien vorzustellen, die nicht viel gesagt werden müssen.
Dann fordert Ajax die Hintergrundadresse an. Der Code ist wie folgt:
<div> <Eingabe type = "Datei" id = "hochladen" name = "upload" style = "font-size: 0; opazität: 0; width: 100%; Höhe: 100%; Position: absolut; links: 0; top: 0; '/test/user/iMgload', // Backend -Anforderungsadresse: 'Post', Anforderungsmethode Wenn Sie einen benutzerdefinierten Parameter einreichen möchten, muss dieser Parameter eingerichtet werden, um Secureuri zu veröffentlichen, //, ob Secureuri aktiviert werden soll, der Standard ist falsch. 'JSON', der vom Server zurückgegebene Datentyp kann XML, JSON, HTML sein. }, Fehler: Funktion (JSON, Status, e) {// Die Verarbeitungsfunktion wurde automatisch ausgeführt, nachdem die Einreichung fehlgeschlagen ist.Wenn der Front-End-Code abgeschlossen ist, wird der Hintergrundcode entwickelt.
Paket com.roc.test; import java.io.file; import java.util.list; import javax.servlet.http.httpsertRequest; import Javax.servlet.http.httpServletResponse; Import Javax.Rs.ConsUMES; javax.ws.rs.Produces; import javax.ws.rs.queryparam; import javax.ws.rs.core.context; import javax.ws.rs.core.mediatype; import.sf.json.jsonObject; import org.apache.commons.fileUpload.FileInitem.FileInitem.FileItem.FileItem.FileInitem.FileItem.FileItem.FileInitem.FileItem.FileInitem.FileItem.FileItem.FileM. org.apache.commons.FileUpload.disk.diskFileItemfactory; import org.apache.commons.FileUpload.Servlet.ServletFileUpload; import org.jboss.resteasy.Annotations.providers.jaxb.json.badgerish; net.sf.json.JSONObject;/** * Upload file* @author liaowp * */@Controller@Path("/user")public class UploadImg { @Path("/imgUpload") @POST @Produces("application/json; charset=utf-8") @Consumes(MediaType.MULTIPART_FORM_DATA ) @BadgerFish public JSONObject Upload (@Queryparam ("orderId") String orderId,@context httpServletRequest -Anforderung,@context httpServletResponse -Antwort) {JsonObject jsonObj = new jsonObject (); String file_path = request.getSession (). GetServletContext (). GetRealPath ("/")+file.separator+"corpFile"+file.separator; // Dateispeicherpfad String upload_file_path = ""; Datei Datei = neue Datei (Datei_Path); if (! file.exists () &&! file.isdirectory ()) {// Wenn der Ordner nicht existiert, erstellen Sie Datei.mkdir (); Upload_File_path = Datei_Path; } else {upload_file_path = file_path; } DiskFileItemFactory factory = new diskFileItemFactory (); // factory factory.setRepository (neue Datei (Datei_Path)); // Dateispeicherspeicherort factory.setSizethreshold (2048 * 1024); // Setgröße, wenn die Datei kleiner als die festgelegte Größe ist, geben Sie sie in den Speicher ein. Upload.SetheaDerencoding ("UTF-8"); // Dies ist der Code für die Verarbeitung chinesischer Dateinamen. Tatsächlich gibt es nur einen Zeilenstring -Dateiname = ""; List <FileItem> Liste; JsonObject jsonObj = new JsonObject (); try {list = upload.ParSerequest (Anfrage); für (FileItem item: list) {if (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) {// Hallo, die Upload -Datei muss weniger als 10 m betragen! JsonObj.put ("Retcode", "100"); JSONOBJ.PUT ("RETMSG", "Hallo, das Hochladen der Datei sollte weniger als 10 m sein!"):} else {// erfolgreich item.write hochladen (neue Datei (Upload_File_Path, Dateiname)); System.out.println (Datei.Sesparator + "CorpFile" + Datei.Separator + Dateiname); JsonObj.put ("Retcode", "0"); JSONOBJ.PUT ("RETMSG", "Hallo, erfolgreich hochladen!"); }}}}} catch (Ausnahme e) {// Upload fehlgeschlagen e.printstacktrace (); JsonObj.put ("Retcode", "9999"); JSONOBJ.PUT ("RETMSG", "Hallo, Datei -Upload fehlgeschlagen"); } return jsonobj; }}Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.