Es gibt viele Animationen auf der Festplatte, aber es ist mühsam, die Festplatte an den Computer anzuschließen und anzusehen. Machen wir sie also im Browser sichtbar.
Da der Ort, an dem die Animation gespeichert wird, kein NAS, sondern nur eine Festplatte ist, wird davon ausgegangen, dass es sich bei der Festplatte um einen NAS mit Raspberry Pi handelt. Das Verfahren zum Verwandeln einer Festplatte in ein NAS wird hier nicht gezeigt.
HDD(NAS)Ort
/mnt/hdd/HD-V3/Anime/
Das Verfahren auf dieser Seite ist sehr einfach zu verstehen, folgen Sie also hier. Umgebungseinstellung für Himbeerkuchen-Tomcat-8
Wenn Sie die Grundlagen wie geschrieben ausführen, funktioniert dies reibungslos. Wenn Sie dies jedoch genauso mit wget tun, funktioniert es nicht, da apache-tomcat-8.5.4.tar.gz nicht mehr verfügbar ist. Da 8.5.31 auf dem neuesten Stand war, sollten Sie apache-tomcat-8.5.31.tar.gz unter Windows herunterladen und mit scp oder so an Raspai senden. Es schien, als würde ich gedit (?) Verwenden, um das Skript zu bearbeiten, aber es war irgendwie so, also schrieb ich das Skript in meinem Lieblings-Nano. Wenn Sie den Schritten im obigen Link folgen, wechselt tomcat zu / usr / local / tomcat. Dieses Mal werde ich hier mit Tomcat mit der Geschichte fortfahren.
Standort des Kater
/usr/local/tomcat/
Die Arbeit wird in einem Ordner namens Arbeitsbereich ausgeführt. tomcat scheint den Ordnernamen anzugeben, um die Klassendatei der Webanwendung abzulegen. Wenn Sie eine Anwendung mit einer darauf basierenden Hierarchie erstellen, lautet die Hierarchie wie folgt.
Ursprünglich scheint es, dass ich dieses Mal einen Ordner meiner eigenen Anwendung unter tomcat / webapps / erstellen werde, aber da sich NAS auf einer höheren Ebene befindet, möchte ich keine Webanwendung unter webapps erstellen.
Deshalb wird der Arbeitsbereich auf der Festplatte platziert.
Arbeitsbereich
/mnt/hdd/HD-V3/Anime/workspace/
Der Arbeitsbereich befindet sich nicht unter Webanwendungen, daher müssen Sie Tomcat informieren. Schreiben Sie wie folgt. Der Name der Datei muss der Name des Verzeichnisses sein. (Es scheint eine Möglichkeit zu geben, es in server.xml zu schreiben, aber es hat nicht funktioniert.)
/usr/local/tomcat/conf/Catalina/localhost/workspace.xml
<Context path="/workspace" docBase="/mnt/hdd/HD-V3/Anime/workspace" />
Schreiben Sie die Seitenstruktur des Arbeitsbereichs.
/mnt/hdd/HD-V3/Anime/workspace/WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>cookie1</servlet-name>
<servlet-class>cookie1</servlet-class>
</servlet>
<servlet>
<servlet-name>cookie2</servlet-name>
<servlet-class>cookie2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>
cookie1
</servlet-name>
<url-pattern>
/servlet/cookie1
</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>
cookie2
</servlet-name>
<url-pattern>
/servlet/cookie2
</url-pattern>
</servlet-mapping>
</web-app>
Ich hatte ursprünglich geplant, Cookies zu verwenden, daher wird dieser Name verwendet, aber ich habe ihn nicht im Programm verwendet. cookie1.java Rufen Sie die Dateinamenliste in / mnt / hdd / HD-V3 / anime / workspace / anime / ab, fügen Sie sie dem Pulldown-Menü hinzu, wählen Sie einen Titel aus und wechseln Sie zu cookie2.java.
cookie1.java
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.File;
public class cookie1 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
response.setContentType("text/html; charset=utf-8");
PrintWriter out = response.getWriter();
request.setCharacterEncoding("UTF-8");
out.println("<html><head>");
out.println("<title>cookie1</title>");
out.println("</head><body>");
out.println("<h1>Wiki Anime DB</h1><hr>");
String root="/mnt/hdd/HD-V3/Anime/workspace/anime/";
File dir=new File(root);
File[] list=dir.listFiles();
out.println("Anzahl der Titel:"+list.length+"<br>");
out.println("<form action=\"/workspace/servlet/cookie2\" method=\"GET\">");
out.println("Name: <input type=\"text\" name=\"name\" size=32>");
out.println("<br>");
out.println("<input type=\"submit\" value=\"Codegenerierung\">");
out.println("<br>");
out.println("<select name=\"anime\">");
for(int i=0;i<list.length;i++){
String dst=list[i].toString();
dst=dst.replace(root,"");
out.println("<option value=\""+dst+"\">"+dst+"</option>");
}
out.println("<select>");
out.println("</form>");
out.println("</body></html>");
}
}
cookie2.java Basierend auf dem Animationstitel, der von cookie1.java empfangen wurde, werden nur die Dateien mit der Erweiterung .mp4 | .MP4 in der Hierarchie eine Ebene unterhalb dieses Ordners ausgegeben, indem sie mit Video-Tags belegt werden.
cookie2.java
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.File;
public class cookie2 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
response.setContentType("text/html; charset=utf-8");
PrintWriter out = response.getWriter();
request.setCharacterEncoding("UTF-8");
String aname=request.getParameter("anime");
String eaname=URLDecoder.decode(aname,"UTF-8");
String root="../anime/";
String root_t="/mnt/hdd/HD-V3/Anime/workspace/anime/";
out.println("<html><head>");
out.println("<title>cookie2</title>");
out.println("</head><body>");
out.println("<h1>"+eaname+"</h1><hr>");
out.println("Ausgewählter Anime-Ordner="+eaname+"<br>");
out.println("<form action=\"/workspace/servlet/cookie1\" method=\"GET\">");
out.println("<input type=\"submit\" value=\"Rückkehr\">");
out.println("</form>");
File dir=new File(root_t+eaname);
File[] list=dir.listFiles();
out.println("Datei="+list.length+"<br>");
for(int i=0;i<list.length;i++){
String dst=list[i].toString();
dst=dst.replace(root_t+eaname+"/", "");
if(dst.indexOf(".mp4")!=-1 || dst.indexOf(".MP4")!=-1){
dst=root+eaname+"/"+dst;
out.println(dst+"<br>");
out.println("<video src=\""+dst+"\" preload=\"none\" controls></video><br>");
}
}
out.println("</body></html>");
}
}
Sie müssen kompilieren, indem Sie servlet-api.jar mit der Option classpath hinzufügen.
/mnt/hdd/HD-V3/Anime/workspace/WEB-INF/classes/
$ javac -classpath "/usr/local/tomcat/lib/servlet-api.jar" cookie1.java
$ javac -classpath "/usr/local/tomcat/lib/servlet-api.jar" cookie2.java
Hinweis Die Kompilierung schlug zunächst fehl, da /usr/local/tomcat/lib/servlet-api.jar keine Berechtigungen hat.
Genehmigung
$sudo chmod 755 /usr/local/tomcat/lib/servlet-api.jar
Ich habe die Berechtigungen erteilt und sie dann kompiliert und es hat funktioniert.
python
$ sudo /etc/init.d/tomcat start
Derzeit können Sie mit ZOY die Animation auf der Festplatte bequemer von Ihrem Smartphone aus ansehen.