0

こんにちは: クライアントからサーバーにオーディオ ファイル (.Wav) を転送する必要があります。問題は、コードがエラーなしで実行されることですが、宛先フォルダーにファイルが表示されないため、ファイルが転送されません! 誰かが私を助けてくれることを願っています.. ご挨拶!

コード:

try {
        URL pagina = new URL("http://localhost:8081/prueba/audio.wav");
        HttpURLConnection con = (HttpURLConnection) pagina.openConnection();

        con.setDoOutput(true);
        con.setDoInput(true);
        con.setRequestMethod("POST");
        con.setRequestProperty("content-type", "audio/x-wav");
        con.setUseCaches(false);

        con.connect();

        String filename = System.getProperty("user.home") + "\\.vmaudio\\" +                "audio.wav";


        FileInputStream is = new FileInputStream(filename);

        DataOutputStream fos = new DataOutputStream(con.getOutputStream ());


        int fByte;

        int bytesTrasferidos = 0;
        while ((fByte = is.read()) != -1) {
            fos.write(fByte);
            fos.flush();
            bytesTrasferidos++;
        }
        System.out.println("Bytes Transferidos: "+bytesTrasferidos);

        fos.close();
        is.close();
        con.disconnect();


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

        } catch (Exception ex) {
        Logger.getLogger(pruebasVarias.class.getName()).log(Level.SEVERE, null, ex);

        }

PD:ファイルを受信して​​サーバー上のフォルダーにコピーするサーブレットを作成する必要があるかもしれませんが、実際にはそうではありません。私の考えは、クライアントから直接送信することでした..

4

2 に答える 2

0

サーブレットを作成する必要があります。そうしないと、コンテンツを受け入れてディレクトリに保存する準備ができていません。

幸いなことに、自分で実装する必要はありません。ジャカルタファイルアップロードを見てください

于 2012-05-16T18:47:07.023 に答える
0

DataOutputStreamを使用しないでください

これを見てください。

java.net.URLConnection を使用して HTTP 要求を起動および処理する

 URLConnection connection = new URL(url).openConnection();
 connection.setDoOutput(true); // Triggers POST.
 connection.setRequestProperty("Accept-Charset", charset);
 connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=" + charset);
 OutputStream output = null;
 try {
 output = connection.getOutputStream();
 output.write(query.getBytes(charset));
 } finally {  
    if (output != null) try { output.close(); } catch (IOException logOrIgnore) {}
 }
 InputStream response = connection.getInputStream();
 // ...
于 2012-05-16T18:49:12.133 に答える