簡體   English   中英

無法使用HttpURLConnection上傳Excel文件

[英]Unable to upload a Excel file using HttpURLConnection

我已成功使用HttpURLConnection上傳* .txt文件 現在,我的任務是更改用於上載每種文件類型的程序。 我用.xls文件 嘗試了程序。 文件放置在服務器上,但是內容不可讀。

就像您在這里看到的那樣:

ÃÃá±Ã¡> x„äMicrosoft CorporationMicrosoft Excel@â€Ã¸(º»þÿ3à …ŸòùOh«‘+'³Ù0Ëœ8Å'@ xâ€?Microsoft公司MicrosoftMicrosoft @@ Excel(@ (º»ÃŒï¿½Ã¡Â°Ãâ\\ pMicrosoft Corporation

這是我的代碼段:

    HttpURLConnection urlConn = (HttpURLConnection) new URL(testdocumentURL).openConnection(); 
    urlConn.setRequestMethod("POST");
    urlConn.setRequestProperty("X-Method-Override", "PUT");     
    urlConn.setRequestProperty("Content-Type", "text/xml"); 
    urlConn.setRequestProperty("Authorization", "Basic "+ Client.getPassword());
    urlConn.setUseCaches(false);
    urlConn.setDoInput(true);
    urlConn.setDoOutput(true);
    urlConn.setFollowRedirects(false);
    urlConn.setRequestProperty("Slug", "Connectiontest/test.xls"); 
    String write = readFile(test.xls);
    urlConn.setRequestProperty("Content-Length","" + write.length());
    urlConn.getOutputStream().write(write.getBytes("UTF8"));

在我看來,有兩種方法可以解決此問題。

  1. 在.write(write.getBytes(“ UTF8”))處更改輸出
  2. 改變輸入

目前,我讀取的文件是這樣的:

    readFile(String test){
    BufferedReader reader = new BufferedReader(new FileReader(test));
    String line = null;
    StringBuilder stringBuilder = new StringBuilder();
    String ls = System.getProperty("line.separator");

    while ((line = reader.readLine()) != null) {
        stringBuilder.append(line);
        stringBuilder.append(ls);
    }
    reader.close();
    return stringBuilder.toString();
    }

我試圖以這種方式更改RequestProperty():

connection.setRequestProperty("content-type", "multipart/form-data");

要么

connection.setRequestProperty("content-type", "application/vnd.ms-excel");

有人知道要上傳這樣的.xls文件嗎? 我不得不prefere的HttpURLConnector,我的老板說。 :/

非常感謝!

不要將Excel文件視為String 更改readFile以將文件讀取為byte[] ,然后將其寫入連接輸出流。

將內容類型設置為application / vnd.ms-excel,然后嘗試一下

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM