Ich wollte ursprünglich AJAX zum Hochladen von Dateien ohne Aktualisierung verwenden, stellte jedoch später fest, dass dies nicht einfach zu implementieren war. Nach langer Suche im Internet habe ich endlich eine „Pseudo-AJAX“-Implementierung gefunden Leser.
Zuerst benötigen wir eine hochgeladene HTML- oder JSP-Datei wie folgt:
<FORM METHOD="POST" ACTION="../servlet/FileUploadServlet" enctype="multipart/form-data" target="hidden_frame" onSubmit="showmsg();" >
<input type="file" name="sfile" style="width:450">
<input type="hidden" name="act" value="upload">
<INPUT type="submit" value="Datei hochladen"><span id="msg"></span>
<br>
<font color="red">Unterstützt das Hochladen von JPG-, JPEG-, GIF-, BMP-, SWF-, RMVB-, RM- und AVI-Dateien</font>
<iframe name='hidden_frame' id="hidden_frame" style='display:none'></iframe>
</form>
Unter diesen ist das TARGET-Attribut von FORM [b] sehr wichtig [/b]. Senden Sie die Aktion von FORM zur Ausführung an einen versteckten IFRAME und füllen Sie dann die Operation in der MSG aus. Der ähnliche Code von SERVLET lautet wie folgt folgt:
public void doPost(HttpServletRequest-Anfrage, HttpServletResponse-Antwort)
wirft IOException, ServletException{
PrintWriter out = Response.getWriter();
Response.setCharacterEncoding("utf-8");
Response.setHeader("Charset","utf-8");
Response.setHeader("Cache-Control", "no-cache");
String filepath="",msg="",ext="";
SmartUpload su = new SmartUpload();
boolean succ=true;
. . . . . .
versuchen{
su.initialize(getServletConfig(),request,response);
su.setMaxFileSize(102400000);
su.setTotalMaxFileSize(102400000);
su.setAllowedFilesList(mediaExt+","+flashExt+","+imgExt);
su.setDeniedFilesList("exe,bat,,");
su.upload();
for (int i=0;i<su.getFiles().getCount();i++)
{
com.jspsmart.upload.File file = su.getFiles().getFile(i);
if (file.isMissing()) continue;
String fileName=UploadFileUtils.returnRandomFileName(file.getFileExt());
ext=file.getFileExt().toLowerCase();
. . . . . . . . . . .
msg="<a href="#">Hochladen erfolgreich!</a>";
}
}catch(SmartUploadException sue){
succ=false;
msg="<font color=red>Upload fehlgeschlagen: Bitte überprüfen Sie die Dateierweiterung oder Dateigröße!</font>";
}catch(Ausnahme ex){
succ=false;
msg="<font color=red>Upload fehlgeschlagen: Bitte überprüfen Sie die Dateierweiterung oder Dateigröße!</font>";
ex.printStackTrace();
}
msg=Escape.escape(msg);
wenn(erfolgreich)
out.println("parent.document.getElementById('msg').innerHTML = unescape('"+msg+"');parent.backCallIframe('"+Escape.escape(ext)+"','"+Escape. escape(filepath)+"')");
anders
out.println("parent.document.getElementById('msg').innerHTML = unescape('"+msg+"');");
out.close();
}