java 客户端上传文件 100分求解

来源:百度知道 编辑:UC知道 时间:2024/05/28 16:58:37
我手上有两个类,一个server和一个servlet,用来处理浏览器上传文件的。服务器类处理大文件时,用了一个byte[] 来装上传的数据
InputStream socketIn=....
int size=socketIn.available();
byte[] requestBuffer=new byte[size];

这样好像是byte[] 不够容纳大文件的字节,希望高手帮我修改一下。留个邮箱让我把源码发到你那,帮我修进。谢谢
我邮箱dava_gosling@hotmail.com
下面是server类的部分源码:
public class HTTPServer1{
private static Map servletCache=...;

public static void main(String args[]) {
int port;
ServerSocket serverSocket;
try {
port = Integer.parseInt(args[0]);
}catch (Exception e) {
System.out.println("port = 8080 (默认)");
port = 8080; //默认端口为8080
}

try{
serverSocket = new ServerSocket(port);
System.out.println("服务器正在监听端口:" + serverSocket.getLocalPort());
while(true) { //服务器在一个无限循环中不断接收来自客户的TCP连接请求
try{
//等待客户的TCP连接请求
final Socket soc

你要做基于 HTTP协议的 文件上传啊。

那你要分析HTTP协议呀,分析HTTP 请求的数据,把里面的内容分离出来。

你可以去看看 Apache组织下的Jakarta项目下的commons子项目的FileUpload 项目的源代码。
地址:
http://commons.apache.org/

如果你要做的不是基于HTTP协议的文件上传,那么你需要自己定义一种协议。

至于:byte[] 数组存储不下内容的问题解决办法有很多种。
例如:采用 java.io.ByteArrayOutputStream这个类
即:向这个内存缓冲write数据,然后在调用ByteArrayOutputStream的toByteArray()方法返回所有的数据。
详见JDK API文档。

有上传组件
java upload_all

282831453@qq.com