T
Teferi
Gast
Hallo!
Ich bin nicht sonderbar erfahren, was https und überhaupt Up- und Download angeht.
Meine Aufgabe ist jetzt, einen Upload über https und einen Download von dieser Datei zu programmieren. Dabei will ich mit dem MVC-System beigehen. (Servlet, JSP, Java-Klasse)
Für den Upload wird aus einer JSP die hochzuladende Datei, sowie ein/zwei Strings übergeben. Dateiname und Strings werden in einer Datenbank abgelegt.
Weil das Formular aus besagtem JSP den Enctype multipart/form-data und die Methode Post haben muss, benutze ich eine Kombination aus MultipartFilter, -Request und -Map. Dadurch wird aber die Datei lokal auf meinen Rechner gesandt. Beim Download wird aber bei einer Web-Seite gesucht. Nun hatte ich vor, zusätzlich einen Upload auf den Server zu machen, wobei ich nicht so recht weiß, ob das sinnvoll ist. (Ich sehe aber keine Alternative zu genannter Kombination.)
Da der Upload aber über https ablaufen soll, so habe ich erfahren, muss ich ein Zertifikat einrichten.
Ich habe schon einige Tage über Google nach einer Lösung gesucht, aber nicht wirklich etwas brauchbares gefunden.
Meine Fragen sind jetzt:
- Wie richte ich am einfachsten so ein Zertifikat ein? (kostenlos)
- Muss das Zertifikat im Java-Code enthalten sein? Und wenn ja, wie?
- Gibt es eine sinnvolle Alternative zu der Kombination MultipartFilter, -Request, -Map?
- Wie kann ich den Upload am einfachsten in meinen Code einbauen, damit er über https läuft und ich im Download die Dateien auch finde?
Das JSP-Formular:
[JAVA=78]
<form action="Up.do" method="post" enctype="multipart/form-data" name="uploadFormular">
<table>
<tr>
<td>Wie ist Ihr Name? (optional)</td>
<td><input name="person" type="text"></td>
</tr>
<tr>
<td>Welches ist Ihre Firma?</td>
<td><input name="firma" type="text"></td>
</tr>
<tr>
<td>Welche Datei wollen Sie hochladen?</td>
<td><input name="datei" type="file"></td>
</tr>
<tr>
<td colspan="2"><center><input type="submit" value="Upload" name="hochladen"></center></td>
</tr>
</table>
</form>
[/code]
Das Servlet Upload.java:
Vielen Dank im Voraus für die Mühe!
Ich bin nicht sonderbar erfahren, was https und überhaupt Up- und Download angeht.
Meine Aufgabe ist jetzt, einen Upload über https und einen Download von dieser Datei zu programmieren. Dabei will ich mit dem MVC-System beigehen. (Servlet, JSP, Java-Klasse)
Für den Upload wird aus einer JSP die hochzuladende Datei, sowie ein/zwei Strings übergeben. Dateiname und Strings werden in einer Datenbank abgelegt.
Weil das Formular aus besagtem JSP den Enctype multipart/form-data und die Methode Post haben muss, benutze ich eine Kombination aus MultipartFilter, -Request und -Map. Dadurch wird aber die Datei lokal auf meinen Rechner gesandt. Beim Download wird aber bei einer Web-Seite gesucht. Nun hatte ich vor, zusätzlich einen Upload auf den Server zu machen, wobei ich nicht so recht weiß, ob das sinnvoll ist. (Ich sehe aber keine Alternative zu genannter Kombination.)
Da der Upload aber über https ablaufen soll, so habe ich erfahren, muss ich ein Zertifikat einrichten.
Ich habe schon einige Tage über Google nach einer Lösung gesucht, aber nicht wirklich etwas brauchbares gefunden.
Meine Fragen sind jetzt:
- Wie richte ich am einfachsten so ein Zertifikat ein? (kostenlos)
- Muss das Zertifikat im Java-Code enthalten sein? Und wenn ja, wie?
- Gibt es eine sinnvolle Alternative zu der Kombination MultipartFilter, -Request, -Map?
- Wie kann ich den Upload am einfachsten in meinen Code einbauen, damit er über https läuft und ich im Download die Dateien auch finde?
Das JSP-Formular:
[JAVA=78]
<form action="Up.do" method="post" enctype="multipart/form-data" name="uploadFormular">
<table>
<tr>
<td>Wie ist Ihr Name? (optional)</td>
<td><input name="person" type="text"></td>
</tr>
<tr>
<td>Welches ist Ihre Firma?</td>
<td><input name="firma" type="text"></td>
</tr>
<tr>
<td>Welche Datei wollen Sie hochladen?</td>
<td><input name="datei" type="file"></td>
</tr>
<tr>
<td colspan="2"><center><input type="submit" value="Upload" name="hochladen"></center></td>
</tr>
</table>
</form>
[/code]
Das Servlet Upload.java:
Java:
package serv;
import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import serv.MultipartMap;
@WebServlet(urlPatterns = {"/upload"})
@MultipartConfig(location = "c://upload/", maxFileSize = 10485760L)
public class Upload extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
MultipartMap map = new MultipartMap(request, this);
String person = map.getParameter("person");
String firma = map.getParameter("firma");
File datei = map.getFile("datei");
String dateiName = datei.getName();
Hoch hoch = new Hoch(person, firma, dateiName);
hoch.upload(datei); //Noch nicht wirklich einsatzbereit.
hoch.datenbank(); //Befüllen der Datenbank.
FileFinder.haupt(); //Temporäre und überschüssige Dateien löschen.
request.getRequestDispatcher("/erfolg.jsp").forward(request, response);
}
}
Vielen Dank im Voraus für die Mühe!