2

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 つの方法があります。

  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 ファイルをアップロードする方法を知っている人はいますか? 上司は、HttpURLConnector を優先する必要があると言いました:/

どうもありがとう!

4

2 に答える 2

1

Excel ファイルをString. readFile代わりにファイルを に読み込むように変更しbyte[]、それを接続出力ストリームに書き込みます。

于 2012-09-11T14:32:44.780 に答える
0

コンテンツ タイプを application/vnd.ms-excel に設定して、試してみてください

于 2012-09-11T14:49:32.970 に答える