带有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) 个答案