[i=s] 本帖最后由 Cloud_Derek 于 2013-5-30 16:11 编辑 我自己查了度娘,还自己试着写了点代码,在txt方面实现成功了之后,再试了下图片、word等,然后发现上传过去的数据好像总是不足,缺失了一下,可是又不知道哪里,让我非常头痛…… 附件里面是我的上传功能代码,其中temp.jsp是原本上传单个文件时用的upload代码。后来老师说要改成多个文件上传,于是我悲剧的开始查资料试着改,写出了up.jsp,其中把麻烦的计算放到了类ForUpload中。 求助各位大神来帮忙看看究竟哪儿错了……我已经看了一天了_(:3 」∠)_……【我这个战5的渣渣只有明儿接着看了,大晚上的颓废之际,来论坛求助一发…… http://pan.baidu.com/share/link?shareid=478506&uk=3323984724 顺便再贴上上传文件的页面: http://pan.baidu.com/share/link?shareid=478855&uk=3323984724
Cloud_Derek 发表于 2013-5-30 16:07 噗,话说我试了下,这个代码得到的结果是上传了0kb囧…… 不过你的逻辑应该没错,不知道是怎么回事啊 ...可能是你的数据递交有问题啊 ~@ou# 打印 fileName 和telsfile 两个参数看看是不是空值,是的话,就说明的你数据递交有问题
Mr_Alex 发表于 2013-5-30 14:22 目测是长度计算有问题,哎,最近不想看代码,头痛~贴一段上传文件的代码,看对你有用没~ [mw_shl_code=java ...噗,话说我试了下,这个代码得到的结果是上传了0kb囧…… 不过你的逻辑应该没错,不知道是怎么回事啊
小野千帆 发表于 2013-5-30 15:01 不是所有人都是windows系统 所以分隔符不要用"\\"应该用File.separator GB***真是反人类,到我电脑里都乱码 ...错了这么多?! 可是temp.jsp的那个是我抄书上的,而且运行起来也没有报错啊, 就后面那个up.jsp是为了多文件上传而改的,不过500错误好夸张的感觉啊……
不是所有人都是windows系统 所以分隔符不要用"\\"应该用File.separator GB***真是反人类,到我电脑里都乱码了。。 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 还有import不必分开写,写在一个里面用逗号分隔。。。 改完这些还是500错误..... $63$ 其实我也没怎么写过文件上传的。。
Mr_Alex 发表于 2013-5-30 14:22 目测是长度计算有问题,哎,最近不想看代码,头痛~贴一段上传文件的代码,看对你有用没~ [mw_shl_code=java ...恩啊,我再比对下两边的长度吧。。 代码就先收下啦~
目测是长度计算有问题,哎,最近不想看代码,头痛~贴一段上传文件的代码,看对你有用没~ [mw_shl_code=java,true]private void upLoadFile(){ try{ FileInputStream in = new FileInputStream(telsfile); //获取当前项目的根目录 String path = ServletActionContext.getServletContext().getRealPath("/"); //构造新的文件名 String fileName = UUID.randomUUID().toString()+telsfileFileName.substring(telsfileFileName.indexOf(".")); //新的路径 String newFilePath =path+ "upload" + "\\"+fileName; System.out.println(newFilePath); //判定文件夹路径是否存在 File file = new File(path+"upload"+"\\"); if(!file.exists()){ file.mkdirs(); } FileOutputStream out = new FileOutputStream(newFilePath); int len ; while((len =in.available())!= 0){ byte[] buf ; if(len > 1024)buf= new byte[1024]; else buf = new byte[len]; in.read(buf); out.write(buf); } ServletActionContext.getRequest().setAttribute("filepath",fileName); out.close(); in.close(); }catch(Exception e){ e.printStackTrace(); } }[/mw_shl_code]