急急急!~各位高手留步,文件上传的问题,解决马上结贴!100分~
问题是这样的,我们需要上传20M之内的文件到服务器。在我的机器上一切正常,让别人连我的机器也是没有没有问题的。我的机器只跑TOMCAT,所链接的数据库和FTP服务器都是我们的服务器的那台机器,我的操作系统是XP。但是,现在把程序一放到服务器的TOMCAT下的时候,就无法上传大于14M的文件,一上传就出错,已经郁闷两天了,各位谁知道这是怎么回事?
我已经尝试过更换WAR包,以及直接将自己机器上的TOMCAT下的那个程序的文件夹直接拷贝过去,都不行。我重装过服务器上的TOMCAT,也不行。尝试更改了服务器上的TOMCAT的内存,已经停掉了IIS,都没作用。
最终我定位到了出错的一句话就是:
private boolean writeFileToHD(FormFile[] files, String filePath) {
// 定义返回值
boolean returnResult = false;
// 定义文件类型变量保存文件
File file = new File(filePath);
delFileFolder(file);
// 如果文件路径不存在
if (!file.exists()) {
// 创建路径
file.mkdirs();
}
String fileName = "";
try {
// 定义文件输出流
OutputStream outSteam;
for (int i = 0; i < files.length; i++) {
fileName = files[i].getFileName();
// 初始化文件流
outSteam = new FileOutputStream(filePath + "\\" + fileName);
try{
//将文件写入服务器
outSteam.write(files[i].getFileData());
}catch(Exception e){
System.out.println("Error:"+e.getMessage()+"--Size:"+files[i].getFileSize());
}
// 刷新输出流
outSteam.flush();
// 关闭流
outSteam.close();
// 销毁文件
files[i].destroy();
}
returnResult = true;
} catch (FileNotFoundException e) {
returnResult = false;
} catch (IOException e) {
returnResult = false;
}
return returnResult;
}
中的:
try{
//将文件写入服务器
outSteam.write(files[i].getFileData());
}catch(Exception e){
System.out.println("Error:"+e.getMessage()+"--Size:"+files[i].getFileSize());
}
这句,而且catch不到错误
现在想要把字节流分段写入试一下,可是却不知道具体的实现方式,谁能告诉我一下
问题解决后,马上100分奉上