欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

创建一个简单的图片服务器

程序员文章站 2024-03-20 17:33:10
...

搭建Tomcat服务器

要搭建一个图片服务器,那么在测试时在个人电脑上至少需要启动2个服务器,所以需要修改下Tomcat的端口配置,另外,由于默认情况下Tomcat 发布的项目路径下的内容是只读的,这里需要将其配置为可读写。

修改server.xml的配置

需要修改的端口如下:

<Server port="8050" shutdown="SHUTDOWN"> <!--from 8005 to 8050-->
<Connector port="8088" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />  <!--from 8080 to 8088-->
<Connector port="8090" protocol="AJP/1.3" redirectPort="8443" />

修改web.xml的配置

找到103行的servlet,然后加入readonly的配置。

    <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>
    <!--add configuration here for read only-->
        <init-param>
            <param-name>readonly</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>

然后在该tomcat的webapps下面创建存储文件的路径,路径如下:

/usr/local/apache-tomcat-7.0.69-2/webapps/image-web/upload

至此,不妨拷贝一个图片到该路径下,然后启动tomcat就可以访问该照片了。假设照片的名称为1.jpg,则可以通过
http://localhost:8088/image-web/upload/1.jpg访问该照片了

利用jersey来测试发送照片到图片服务器

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.WebResource;
import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;

/**
 * Created by lili on 16/6/10.
 */
public class TestJerssy {
    public static void main(String[] args) throws IOException {
        Client client = new Client();

        String uploadURL = "http://localhost:8088/image-web/upload/888.jpg";

        WebResource webResource = client.resource(uploadURL);

        String path = "/Users/lili/Downloads/IMG_0535.JPG";

        byte[] filebytes = FileUtils.readFileToByteArray(new File(path));

        webResource.put(String.class,filebytes);
        System.out.println("over!");
    }
}