上傳圖片到Tomcat服務器
一.前言
在實際項目開發中,很多地方都會涉及到上傳圖片到服務器,而且圖片資源往往是與項目是分屬不同的服務器。本博文將實現利用Jersey上傳圖片資源到Tomcat服務器上
二.預製條件
IDE:eclipse
web容器:Tomcat 7.0
三.實現
實現思路:Tomcat默認情況下是不允許進行文件讀寫,因此首先要對其進行讀寫配置,然後利用jersey上傳圖片到Tomcat上
(步驟一):修改Tomcat讀寫權限配置
在Tomcat容器的conf目錄下找到web.xml並打開,大概在98行找到如下代碼:
<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>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
加入權限代碼,變成如下
<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>readonly</param-name>
<param-value>false</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>
(步驟二):新建一個web動態項目,在webContext下新建一個upload的文件夾,這個目錄結構只用於存放上傳的圖片資源,將該項目部署到tomcat服務器
注意這時不要啓動eclipse中的服務器免得佔用了端口號
(步驟三):在Tomcat容器的bean目錄下啓動服務器startup.bat
(步驟四):創建一個java項目上傳圖片
1.導入jesery包
commons-io-1.3.2.jar jersey-client-1.18.1.jar jersey-core-1.18.1.jar
commons-io-1.3.2.jar 與上傳文件無直接關係,只是爲了很好的操作文件io流
測試實現代碼如下:JerseyDemo.java
public class JerseyDemo {
public static void main(String[] args) throws IOException {
//實例化一個Jersey
Client client = new Client();
//保存圖片服務器的請求路徑
String url = "http://localhost:8088/image-web/upload/qqq.jpg";
//設置請求路徑
WebResource resource = client.resource(url);
String path = "本地圖片的絕對路徑";
//讀取圖片到內存,將其變成二進制數組
byte[] readFileToByteArray = FileUtils.readFileToByteArray(new File(path));
//發送post get put
resource.put(String.class, readFileToByteArray);
System.out.println("成功發送");
}
}