java web项目java后台获取前台js上传文件的路径

2024-11-25 12:22:12
推荐回答(4个)
回答1:

如果通过servelet来读取上传文件路径,则代码如下,我已经在项目中用过了:

DiskFileItemFactory difif = new DiskFileItemFactory();
difif.setSizeThreshold(32*1024);difif.setRepository(new File(tmpDir));        //
用以上工厂实例化上传组件ServletFileUpload sfu = new ServletFileUpload(difif);
sfu.setSizeMax(MAX_SIZE);
List fileList = sfu.parseRequest(request);
if ( fileList == null || fileList.size() == 0) {                throw new Exception("
导入文件不存在,请检
查");} else {                File upLoadFile = null;                Iterator fileIterator = fileList.iterator();
//得到所有上传的文
件                while (fileIterator.hasNext()) {                    FileItem fileItem = (FileItem)fileIterator.next();                    //
取得上传文件
名                    if (fileItem.getContentType() == null) {                    } else {
                        //
此为路
径                        String path = fileItem.getName();                        String t_ext = path.substring(path.lastIndexOf(".") + 1);                                                //
根据系统时间生成上传后保存的文件
名                        String prefix = String.valueOf(System.currentTimeMillis());                        //
保存最终的文件完整路径,保存在工程根目录下的Upload目录
下                        String u_name = tmpDir + File.separator + prefix + "." + t_ext;                                                //
开始保存文
件                        upLoadFile = new File(u_name);                        fileItem.write(upLoadFile);                    }                }            }

回答2:

		String fileName = (String) request.getAttribute("fileBrowser");
if (fileName != null && fileName.trim().length() > 0) {
File file = new File(fileName);
file.getPath();
}

在Servlet中,或者Actoin中这样子获取。

页面传递过去的只是一个字符串,需要自己另外做处理。

回答3:

现在因为浏览器安全问题,已经禁止了直接通过input类型为file的路径形式了,现在可以通过流的形式来实现,只需要定义下上传文件类型为“enctype="multipart/form-data”即可:
举例:








" onclick="submitForm1()" />
" onclick='confirm("你确认要取消本次上传吗?")'/>

回答4:

如果你alert中能够获得文件的路径的话,说明js是没问题的。问题是你的form和js中好像没有写提交到哪里后台能获得值吗?