有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

带有HTML表单文件上载的Javasocket服务器

我也在尝试制作一个JavaHTML服务器,允许用户上传文件。我不希望使用tomcat或任何其他库。我已经有我的代码工作太允许浏览器太连接太它。然而,我似乎不太明白如何从html表单上传文件

                PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
                out.println("<html>NEXT PAGE</html>");
                System.out.println(response);

                response = readLine(socket);
                System.out.println(response);

                receiveFile(new File("/home/user/Downloads/blla.html"));

//THE FUNCTIONS

public String readLine(Socket socket)throws IOException{
    BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

    String inputLine, builder = "";
    while(!(inputLine = in.readLine()).equals("")){
        builder += inputLine+"\r\n";
    }

    return builder+"\r\n";
}

public void receiveFile(File file){
    try{
        InputStream in = socket.getInputStream();
        FileOutputStream out = new FileOutputStream(file.getPath());

        byte[] buffer = new byte[4096];
        int length;
        while((length = in.read(buffer)) != -1){
            out.write(buffer, 0, length);
        }

        out.flush();
        out.close();

    }catch(Exception e){
        e.printStackTrace();
    }
}

这是我上传文件的html表单

        <form action='/u' method="post" enctype="multipart/form-data">
            Select image to upload:
            <input type="file" name="fileToUpload" id="fileToUpload">
            <input type="submit" value="Upload Image" name="submit">
        </form>
  • 更新- 我意识到BufferedReader正在缓冲POST内容的一些输出。所以我现在只是使用一个inputstream,读取内容,然后将POST部分也添加到文件中。然而现在这个文件似乎太大了,大约3KB,我也能够解析文章的最后一位,它包含了一个数据包结束位

共 (0) 个答案