[英]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"));
在我看來,有兩種方法可以解決此問題。
目前,我讀取的文件是這樣的:
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.