😽

[Tomcat]WebDAVでファイルをアップロードする方法(for Mac)

2022/05/27に公開

概要

画像ファイルを、Tomcatのサーバーに
WebDAVで通信を行なってアップロードする。

WebDAVとは?

「Distributed Authoring and Versioning protocol for the WWW」の略。
WWW でファイルの転送に使われる HTTP を拡張し、Web ブラウザから Web サーバ上のファイルやフォルダを管理できるようにした仕組みのこと。

ファイル管理する際には、FTP通信やSFTP通信などもあるが、
FTPサーバーなどを用意する必要がある。

一方、WebDAVの場合は、HTTP通信の拡張なので、
別のサーバーを用意することなく、Webサーバーと同じ8080ポートから通信が可能。

手順

①WebdavServletの使用設定

ローカルにインストールしているTomcat

本記事では、「Tomcat8」を使用しています。
・ダウンロードサイト
本記事では、「MacintoshHD/Users/(ユーザー名)」の直下に置いている。

・「web.xml」は、「conf」フォルダ内にある

下記のコードを追加する

<servlet>
    <servlet-name>webdav</servlet-name>
    <servlet-class>org.apache.catalina.servlets.WebdavServlet</servlet-class>
    <init-param>
        <param-name>debug</param-name>
        <param-value>0</param-value>
    </init-param>
    <init-param>
        <param-name>listings</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>readonly</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>
        <param-name>allowSpecialPaths</param-name>
        <param-value>true</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>webdav</servlet-name>
    <url-pattern>/webdav/*</url-pattern>
</servlet-mapping>

・web.xml(コード追加後)

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee                       http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">


  <!-- ================== 追加 ここから ==================== -->


<servlet>
    <servlet-name>webdav</servlet-name>
    <servlet-class>org.apache.catalina.servlets.WebdavServlet</servlet-class>
    <init-param>
        <param-name>debug</param-name>
        <param-value>0</param-value>
    </init-param>
    <init-param>
        <param-name>listings</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>readonly</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>
        <param-name>allowSpecialPaths</param-name>
        <param-value>true</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>webdav</servlet-name>
    <url-pattern>/webdav/*</url-pattern>
</servlet-mapping>
  

  <!-- ==================  追加 ここまで ==================== -->

    <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>



  <!-- ==================  
             省略
              ==================== -->



<mime-mapping>
        <extension>123</extension>
        <mime-type>application/vnd.lotus-1-2-3</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>3dml</extension>
        <mime-type>text/vnd.in3d.3dml</mime-type>
    </mime-mapping>


  <!-- ==================  
             省略
              ==================== -->


    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

</web-app>

②Tomcatの起動(ターミナル)

下記のメモを参考にしてもらえるといいとおもます。

・ターミナルからTomcat起動

もちろん、eclipseから起動でも
大丈夫です。

③Wevdav接続(Finder)

・Finderからサーバーへ接続する




・Finder上に、Wevdavが出現

・WebDavで画像ファイルをアップロード

・Finder

・サーバー上へ追加する画像ファイル <Tomcat.png>

・ドラッグ&ドロップ

・ブラウザ上

・追加前

・追加後

・<Tomcat.png>が追加されている

・<Tomcat.png>をクリックすると、表示される

まとめ

TomcatでWebDavをするには、特別ソフトをインストールすることなく、
Macにもとからある、Finderとターミナルがあればできます。

設定も、web.xmlに
WebdavServletについて追加するだけ。

ぜひ、
お試しあれ。

参考

・TomcatでWebdavを使うのはweb.xmlの設定だけで良い。

・Setup web dav with tomcat

WebDAV によるファイルのアップロード(Mac を利用する場合)

・Class WebdavServlet

Discussion