2013-07-28 234 views
0

我使用了一個名爲UploadFFGS功能,這是它的內容:無法上傳文件到服務器

URL url = new URL("http://linkedme.com/filebet.txt"); 
     URLConnection ucn = url.openConnection(); 
     HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 

     connection = (HttpURLConnection) url.openConnection(); 

     FileInputStream is = new FileInputStream("filebet.txt"); //before I download the same file because I must edit it and upload the new version 
     OutputStream ostream = connection.getOutputStream(); 
     PrintWriter pwriter = new PrintWriter(ostream); 

     pwriter.print(jTextArea1.getText()); 
     pwriter.close(); 

這個節目從來不是我的桌面上的文件filebet我已經上傳到我的鏈接(http://linkedme.com/filebet.txt)。有任何想法嗎?我把它用這種方式:

  try { 

     UploadFFGS(); 
     } 
      catch (MalformedURLException ex) { 
      Logger.getLogger(xGrep.class.getName()).log(Level.SEVERE, null, ex); 
     } catch (IOException ex) { 
      Logger.getLogger(xGrep.class.getName()).log(Level.SEVERE, null, ex); 
     } 

此外,NetBeans的給了我這個錯誤: 「java.net.ProtocolException:不能寫入到一個URLConnection如果=則將DoOutput假 - 調用setDoOutput(真)」。

+1

是否有某種異常或錯誤?當你在調試器中執行代碼時,它在什麼時候失敗? – David

+0

我不確定導致此功能的混淆。首先,你不能簡單地寫入一個URL。您需要確定本網站的文件上傳規定 - 您是否必須通過某種形式發佈文件?您也可以從URL中打開連接不少於三次,並且您的源文件的'FileInputStream'永遠不會被讀取。 –

+0

我發佈了錯誤+我使用的例外 –

回答

3

由於您的API端點(很可能)是常規文件而不是解釋腳本,因此您的方法將無法工作。端點必須提供一個API用來上傳文件(POST/PUT等)。

+0

所以我應該使用URLConnection以外的其他東西? +1的方式 –

+0

第一步是在linkedme.com上設置端點。是的,您仍然可以使用它來寫入原始內容並將文件的原始內容保存在另一側。 –

+0

在服務器上設置類似php的東西,將整個請求體保存到一個文件中。 –

0

我有不同的解決方案。也許這對別人有用。 只需在您的網絡瀏覽器中查看您的高級代理設置。 我們公司的系統工程師已經更改了代理設置,但我並沒有意識到這一點。 這個錯誤花了我3個工作日。在我的公司編寫一個ftp上傳項目時,我得到了這個doOutput錯誤。我試過所有的東西,比如增加conn.setDoOutput(true)或'五十個陰影'的類似解決方案,但是他們中沒有人救了我。 但是,在我將代理設置更改爲正確的代碼後,錯誤消失了,現在我可以使用java中的urlConnection通過ftp上傳我的文件。 我使用下面鏈接中的代碼進行上傳過程,並且除主機,端口,用戶和密碼外沒有添加任何內容。 http://www.ajaxapp.com/2009/02/21/a-simple-java-ftp-connection-file-download-and-upload/