Dusan Zatkovsky napsal(a):
S tym servletom je to vyborny napad, akurat vobec netusim, ako to naprogramovat ( web je moja slaba stranka ) :)

Tak tady to je :-)

public class PutServlet extends HttpServlet {
    @Override
protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        ServletInputStream in = request.getInputStream();
        byte[] buffer = new byte[4096];
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("/tmp/soubor"));
        int n;
        while((n=in.read(buffer))!=-1) {
            out.write(buffer,0,n);
        }
        out.close();
        in.close();
        response.setStatus(HttpServletResponse.SC_OK);
    }
}

a namapovat ho ve web.xml třeba takto:

    <servlet>
        <servlet-name>PutServlet</servlet-name>
        <servlet-class>cz.makub.PutServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>PutServlet</servlet-name>
        <url-pattern>/put/*</url-pattern>
    </servlet-mapping>

a klient může použít HTTP klienta z JDK:

public class PutClient {
    public static void main(String[] args) throws IOException {
HttpURLConnection uc = (HttpURLConnection) new URL("http://localhost:8080/putapp/put/file";).openConnection();
        uc.setRequestMethod("PUT");
        uc.setDoOutput(true);
        BufferedInputStream in = new BufferedInputStream(
                new FileInputStream("veliky_soubor"));
        byte[] buffer = new byte[4096];
        int n;
        OutputStream out = uc.getOutputStream();
        while ((n = in.read(buffer)) != -1) {
            out.write(buffer, 0, n);
        }
        in.close();
        out.close();
        int responseCode = uc.getResponseCode();
        System.out.println("responseCode = " + responseCode);
    }
}

Samozřejmě čtení a ukládání souborů je třeba předělat
na něco reálného.

Makub
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Supercomputing Center Brno             Martin Kuba
Institute of Computer Science    email: ma...@ics.muni.cz
Masaryk University             http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ     mobil: +420-603-533775
--------------------------------------------------------------


Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Odpovedet emailem