j2ee上传文件 如何获得上传前文件的绝对路径 创建时间 我想获取在本地创建文件的时间

j2ee上传文件 如何获得上传前文件的绝对路径 创建时间 我想获取在本地创建文件的时间,第1张

<!DOCTYPE html PUBpC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />

<title>获取文件绝对路径</title>

<style type="text/css">

</style>

</head>

<body>

<script type="text/javascript">

//FX获取文件路径方法

function readFileFirefox(fileBrowser) {

try {

netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")

}

catch (e) {

alert('无法访问本地文件,由于浏览器安全设置。为了克服这一点,请按照下列步骤 *** 作:(1)在地址栏输入"about:config"(2) 右键点击并选择 New->Boolean(3) 输入"signed.applets.codebase_principal_support" (不含引号)作为一个新的首选项的名称(4) 点击OK并试着重新加载文件')

return

}

var fileName=fileBrowser.value//这一步就能得到客户端完整路径。下面的是否判断的太复杂,还有下面得到ie的也很复杂。

var file = Components.classes["@mozilla.org/file/local1"]

.createInstance(Components.interfaces.nsILocalFile)

try {

// Back slashes for windows

file.initWithPath( fileName.replace(/\//g, "\\\\") )

}

catch(e) {

if (e.result!=Components.results.NS_ERROR_FILE_UNRECOGNIZED_PATH) throw e

alert("File '" + fileName + "' cannot be loaded: relative paths are not allowed. Please provide an absolute path to this file.")

return

}

if ( file.exists() == false ) {

alert("File '" + fileName + "' not found.")

return

}

return file.path

}

//根据不同浏览器获取路径

function getvl(obj){

//判断浏览器

var Sys = {}

var ua = navigator.userAgent.toLowerCase()

var s

(s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :

(s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :

(s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :

(s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :

(s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0

var file_url=""

if(Sys.ie<="6.0"){

//ie5.5,ie6.0

file_url = obj.value

}else if(Sys.ie>="7.0"){

//ie7,ie8

obj.select()

file_url = document.selection.createRange().text

}else if(Sys.firefox){

//fx

//file_url = document.getElementById("file").files[0].getAsDataURL()//获取的路径为FF识别的加密字符串

file_url = readFileFirefox(obj)

}else if(Sys.chrome){

file_url = obj.value

}

//alert(file_url)

document.getElementById("text").innerHTML="获取文件域完整路径为:"+file_url

}

</script>

<h1>JS获取文件域完整路径的方法,兼容不同浏览器</h1>

<div id="text" style="color:#f00"></div>

<input type="file" id="file" onchange="getvl(this)" />

</body>

</html>

chorme 和 ie 都可以获取到 火狐设置一下也可以

以前遇到过这个问题,原因是什么好像记不太清楚了,后来换写法了,就没这个问题了

下面是我觉得比较简单的一种写法,你可以参考下,还有一种别的,如果你要的法可以再贴给你

private void upload(HttpServletRequest request) throws Exception {

Category category = new Category()

category.setFiles(new HashSet())

String webroot = request.getRealPath("")

boolean isMultipart = ServletFileUpload.isMultipartContent(request)

if (isMultipart) {

// 创建磁盘工厂,利用构造器实现内存数据储存量和临时储存路径

DiskFileItemFactory factory = new DiskFileItemFactory(1024 * 4,

new File(webroot+"\\temp\\"))

// 设置最多只允许在内存中存储的数据,单位:字节

// factory.setSizeThreshold(4096)

// 设置文件临时存储路径

// factory.setRepository(new File("D:\\Temp"))

// 产生一新的文件上传处理程式

ServletFileUpload upload = new ServletFileUpload(factory)

upload.setHeaderEncoding("UTF-8")

upload.setSizeMax(1024 * 1024 * 100)

// 解析请求,开始读取数据

// 得到所有的表单域,它们目前都被当作FileItem

List<FileItem>fileItems = upload.parseRequest(request)

// 依次处理请求

Iterator<FileItem>iter = fileItems.iterator()

while (iter.hasNext()) {

FileItem item = (FileItem) iter.next()

if (item.isFormField()) {

// 如果item是正常的表单域

String value = item.getString("UTF-8")

category.setName(value)

} else {

item.write(new File(webroot + "\\temp\\" + fileName))

}

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11852168.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存