c:\fakepath路径如何解决?

佳兴源 2015-10-29 11:36:13
一个<input type="file" />标签,需要获取到路径并将路径传给后台程序,由后台程序去操作此文件,但是如果是c:\fakepath后台无法找到路径,所以想找到真实的路径,一切都是在本地实现,但是要用html实现,并且是chrome浏览器下
...全文
8522 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_42273662 2018-12-27
  • 打赏
  • 举报
回复
这个不能用啊
加蓬丝蝰 2015-10-29
  • 打赏
  • 举报
回复
引用 1 楼 a13366325930 的回复:
内容仅供参考:
忘了这一茬了,抱歉:


		String userCode = ((UserContext) request.getSession().getAttribute("userContext")).getUsercode();
		result = new HashMap<String, Object>();
		// 创建一个通用的多部分解析器
		CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession()
				.getServletContext());
		int pre = 0;
		// 判断 request 是否有文件上传,即多部分请求
		if (multipartResolver.isMultipart(request)) {
			// 转换成多部分request
			MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
			// 取得request中的所有文件名
			for (Iterator<String> iterator = multiRequest.getFileNames();iterator.hasNext();) {
				// 记录上传过程起始时的时间,用来计算上传时间
				pre = (int) System.currentTimeMillis();
				// 取得上传文件
				MultipartFile multipartFile = multiRequest.getFile(iterator.next());
				if (multipartFile != null) {
					// 取得当前上传文件的文件名称
					String excelPath = multipartFile.getOriginalFilename();
					// 如果名称不为“”,说明该文件存在,否则说明该文件不存在
					if (excelPath.trim() != "") {
						try {
							//定义缓冲路径
							String fileName = PubFun.getCurrentYMDHMSS() + multipartFile.getOriginalFilename();
							String path = excService.getExcelPath() + fileName;
							File localFile = new File(path);
							multipartFile.transferTo(localFile);
							//解析
							result = tAccService.resolveExcel(localFile, userCode);
							localFile.delete();
						} catch (Exception e) {
							result.put("error", "上传至服务器时出现异常!");
							e.printStackTrace();
						}
					}
				}
			}
		}
		
		int finaltime = (int) System.currentTimeMillis();
		try {
			if("error".equals(result.get("result"))){
				response.getWriter().println("<script type='text/javascript'> alert('" + result.get("error") + "') </script>");
			} else {
				result.put("success", "上传成功!所用时间为:" + PubFun.castString((finaltime - pre)/10));
				response.getWriter().println("<script type='text/javascript'> alert('上传成功!所用时间为:" + PubFun.castString((finaltime - pre)/1000) + "s.'); window.location.href='GoToABAllot.action'; </script>");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
我用的是SpringMVC,表单要求必须是enctype="multipart/form-data",普通文件提交,lib里面有common-io和fileupload包
加蓬丝蝰 2015-10-29
  • 打赏
  • 举报
回复
内容仅供参考:
sinat_31535993 2015-10-29
  • 打赏
  • 举报
回复
你说的情况,一般只有在文件预览时,才会有这种需求,你的情况应该用文件上传,然后在服务器端处理

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧