在jsp中查找文件上传路径

时间:2017-05-24 11:56:11

标签: java jsp

任何机构都可以解释这段代码吗?我很困惑请指导我并用JSP语言解释这段代码简单的措辞。谢谢

if( fileName.lastIndexOf("\\") >= 0 ) {
              file = new File( filePath + 
              fileName.substring( fileName.lastIndexOf("\\"))) ;
           } else {
              file = new File( filePath + 
              fileName.substring(fileName.lastIndexOf("\\")+1)) ;
           }
           fi.write( file ) ;
           out.println("<h3>Uploaded Filename:</h3> "+fileName);
        }
     }

2 个答案:

答案 0 :(得分:1)

在java文件中,路径可由\\描述。

例如:String path = "D:\\folder1\\folder2\\filename.type"

lastIndexOf("\\")将从\\返回file name的最后一个位置值。

变量file将被分配path,文件将从磁盘上的java程序中上传。

ifelse块检查文件路径是否正确,并为变量path分配。

最后write方法从指定路径上传文件。

答案 1 :(得分:1)

首先参考方法文档 - lastIndexOfsubstring lastIndexOf&amp; substring了解这些方法的作用。

另请注意,由于\是转义字符,我们在代码中使用双斜杠,因此\\表示单斜杠\

如果您申请lastIndexOf("\\"),则可能会获得值-1>=0-1值表示该字符串中不存在\,值>=0表示它存在。

在下面的if部分中,您只需确定\中是否有fileName,如果它在那里 - 只取最后一部分并附加filePath,以便{{1}像fileName这样的值,您只提取abc\test.txt并附加到\test.txt

filePath

然后,在if( fileName.lastIndexOf("\\") >= 0 ) { file = new File( filePath + fileName.substring( fileName.lastIndexOf("\\"))) ; } 部分中,我们已经知道else不存在,因此代码不必要地执行 - \ - 这将始终为零。

fileName.lastIndexOf("\\")+1)

所以代码可以简单地写成,

else { file = new File( filePath + fileName.substring(fileName.lastIndexOf("\\")+1)) ; }

line - else{ file = new File( filePath +fileName)}创建一个new File(....)对象,即流内容被写入的对象。

在SO上,这些问题没有得到解答,但我回答,因为你的个人资料说你是学生。

其次,我无法评论该代码是否正确或不正确,我只是解释了该代码正在做什么。