日期:2014-05-18  浏览次数:20740 次

求大神帮忙,关于文件上传问题
本帖最后由 u010295565 于 2013-04-14 18:44:47 编辑
情况是这样的,通过浏览选择文件,上传一个TXT文件到服务器进行读取数据
问题是,在我本机项目中,上传无问题,但上传到服务器项目,new FileReader时就报“系统找不到指定文件”错误,我大概分析了下,可能是服务器在解析路径时存在问题,所以想请各位大神给出解决办法,拜谢。
各层大概代码如下:
JSP:
〈form action="MoqUploadSubmit.jsp" enctype="MULTIPART/FORM-DATA" method="post">

JAVA:
public ModelAndView importFile(HttpServletRequest request,
HttpServletResponse response) throws Exception {
    List fileList = this.getUploadFileList(request);
    UploadFileItem fileItem = (UploadFileItem) fileList.get(0);
    InputStream is = fileItem.getInputStream();
    //fileItem.getName()为获取文件路径,在上传到服务器时,是能获得路径的,路径为本地上传文件路径,我想是否是服务器环境在得到这个路径时找的却是服务器本身系统中该路径下的文件,所以才报错找不到指定文件,如是的话,有无办法解决啊?
    FileReader file = new FileReader(fileItem.getName());//该行报错(系统找不到指定文件)
}


/**
 * 获取上传文件列表
 * @param request HttpServletRequest
 * @return List 上传文件列表,封装UploadFileItem
 */
protected List getUploadFileList(HttpServletRequest request) throws CSSBaseBizCheckedException {
    List uploadFileList = null; // 上传文件列表
     try {
         DiskFileItemFactory dfiFactory = new DiskFileItemFactory();
         dfiFactory.setSizeThreshold(FileConstants.FILE_MAX_SIZE);
         ServletFileUpload fu = new ServletFileUpload(dfiFactory);
         fu.setHeaderEncoding(FileConstants.CHARACTER_ENCODING_UTF8);
         List fileList = fu.parseRequest(request);
         int len = fileList.size();

         if (fileList != null && len > 0) {
              uploadFileList = new ArrayList();
              for (int i = 0; i < len; i++) {
                  FileItem fitem = (FileItem) fileList.get(i);
                  long fitemSize = fitem.getSize();
                  //如果导入文件大于2.5M则返回
                      if(fitemSize > 2621440){
                       uploadFileList.add(new Long(fitemSize));
                       return uploadFileList;
               &