java附件上传为空,上传文件时总是为空,该如何解决

当前位置:我的异常网» Java Web开发 » 上传文件时总是为空,该如何解决

上传文件时总是为空,该如何解决

www.myexceptions.net  网友分享于:2013-03-07  浏览:30次

上传文件时总是为空

后台 java方法 请高手指点

public String codeToString(String str)

{//处理中文字符串的函数

String s=str;

try

{

byte tempB[]=s.getBytes("utf-8");

s=new String(tempB);

return s;

}

catch(Exception e)

{

return s;

}

}

public void upLoad() throws Exception{

HttpServletRequest request = ServletActionContext.getRequest();

System.out.println(request);

//接收上传的文件内容的临时文件的文件名

String tempFileName=new String("tempFileName1");

//tempFile1对象指向这个临时文件

File tempFile1=new File("D:/",tempFileName);

//outputFile1文件输出流指向这个临时文件

FileOutputStream outputFile1=new FileOutputStream(tempFile1);

//得到客户端提交的所有数据

InputStream fileSource1=request.getInputStream();

//将得到的客户端的数据写入临时文件

System.out.println(fileSource1);

byte b[]=new byte[1000];

int n;

while((n=fileSource1.read(b))!=-1)

outputFile1.write(b,0,n);

//关闭输出流和输入流

System.out.println(n);

outputFile1.close();

fileSource1.close();

//randomFile1对象指向临时文件

RandomAccessFile randomFile1=new RandomAccessFile(tempFile1,"r");

//读取临时文件的第一行数据

randomFile1.readLine();

System.out.println(""+randomFile1.readLine());

//读取临时文件的第二行数据,这行数据中包括了文件的路径和文件名

String FilePath=randomFile1.readLine();

//得到文件名

System.out.println(FilePath);

int position=FilePath.lastIndexOf('\\');

String fileName=codeToString(FilePath.substring(position+1,FilePath.length()-1));

//重新定位读取文件指针到文件头

randomFile1.seek(0);

//得到第4行回车符号的位置,这是上传的文件数据的开始位置

long forthEnterPosition=0;

int forth=1;

while((n=randomFile1.readByte())!=-1&&(forth<=4))

if(n=='\n')

{

forthEnterPosition=randomFile1.getFilePointer();

forth++;

}

//生成上传文件的目录

File FileUploadDir=new File("D:/temp","upload");

FileUploadDir.mkdir();

//saveFile1对象指向要保存的文件

File saveFile1=new File("D:/temp",fileName);

RandomAccessFile randomFile2=new RandomAccessFile(saveFile1,"rw");

//找到上传的文件数据的结束位置,即倒数第4行

randomFile1.seek(randomFile1.length());

long endPosition=randomFile1.getFilePointer();

int j=1;

while((endPosition>=0)&&(j<=4))

{

endPosition--;

randomFile1.seek(endPosition);

if(randomFile1.readByte()=='\n')

j++;

}

//从传的文件数据的开始位置到结束位置,把数据写入要保存的文件中

randomFile1.seek(forthEnterPosition);

long startPoint=randomFile1.getFilePointer();

while(startPoint

{

randomFile2.write(randomFile1.readByte());

startPoint=randomFile1.getFilePointer();

}

//关闭文件输入输出流

randomFile2.close();

randomFile1.close();

tempFile1.delete();

System.out.println("文件"+fileName+"已成功上传!
");

}

报的错误是

-1

null

null

2011-11-16 15:25:53 org.apache.catalina.core.StandardWrapperValve invoke

严重: Servlet.service() for servlet default threw exception

文章评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值