HttpURLConnection を使用して*.txt ファイルを正常にアップロードしています。ここで、すべてのファイル タイプをアップロードするためのプログラムを変更する必要があります。プログラムを.xls ファイルで試してみました。ファイルはサーバーに配置されますが、コンテンツを読み取ることはできません。
あなたがここに見るように:
Ããã ±ã¡>ã¾ã Å'â¸ã¤ãŒãŒãŒS Sheet1Sheet2Sheet3Worksheets4 $€,ã¾ã¿3ã …Ÿã²ã¹Ohâ«â€~+'â³ã™0Å“8Å'@
x„äMicrosoft CorporationMicrosoft Excel@â€Ã¸(º»þÿ3à …ŸòùOh«‘+'³Ù0Ëœ8Å’@
x„ã¤Microsoft CorporationMicrosoft 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"));
私の意見では、この問題を解決するには 2 つの方法があります。
- .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 ファイルをアップロードする方法を知っている人はいますか? 上司は、HttpURLConnector を優先する必要があると言いました。:/
どうもありがとう!