2012-04-06 33 views
1

難以置信的一點Java使得它在客戶端很容易。我確信我將不得不在張貼圖片到一個服務器上的文件先消毒,但我也想保持人訪問一個這樣的服務器文件(並認爲一點點),並結束了垃圾郵件我的照片。我需要嚴格的流程,並且不會被最終用戶篡改。我可以使用PUT和HttpUrlConnection將圖像發送到我的共享主機帳戶嗎?

從我讀我的理解是正確的,一個PUT應該是正是我需要的。我的一個簽署JA從客戶端發送一個網站的相關信息像服務器不暴露我的任何FTP信息或泄露,可以攻擊一個上傳文件。我對PUT有正確的把握是我的問題。它會通過http在我的帳戶上放置圖像,而無需額外的處理過程?

我怎麼可能的方式使用該片段的圖像?

URLConnection urlconnection=null; 
try{ 
File file = new File("C:/test.txt"); 
URL url = new URL("http://192.168.5.27/Test/test.txt"); 
urlconnection = url.openConnection(); 
urlconnection.setDoOutput(true); 
urlconnection.setDoInput(true); 

if (urlconnection instanceof HttpURLConnection) { 
try { 
((HttpURLConnection)urlconnection).setRequestMethod("PUT"); 
((HttpURLConnection)urlconnection).setRequestProperty("Content-type", "text/html"); 
((HttpURLConnection)urlconnection).connect(); 


} catch (ProtocolException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} 
} 


BufferedOutputStream bos = new BufferedOutputStream(urlconnection 
.getOutputStream()); 
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
file)); 
int i; 
// read byte by byte until end of stream 
while ((i = bis.read()) >0) { 
bos.write(i); 
} 
System.out.println(((HttpURLConnection)urlconnection).getResponseMessage()); 
} 
catch(Exception e) 
{ 
e.printStackTrace(); 
} 
try { 

InputStream inputStream; 
int responseCode=((HttpURLConnection)urlconnection).getResponseCode(); 
if ((responseCode>= 200) &&(responseCode<=202)) { 
inputStream = ((HttpURLConnection)urlconnection).getInputStream(); 
int j; 
while ((j = inputStream.read()) >0) { 
System.out.println(j); 
} 

} else { 
inputStream = ((HttpURLConnection)urlconnection).getErrorStream(); 
} 
((HttpURLConnection)urlconnection).disconnect(); 

} catch (IOException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} 

回答

0

號像你想象的大多數網絡服務器不執行PUT命令。 PUT命令通常在WebDAV協議或自定義REST API之外無用。

相關問題