
上传文件时,我想获取客户端上传文件的原始路径。第一考虑,当然是使用js,例如网上可以找到的:
function getPath(obj) { if (obj) { if (windownavigatoruserAgentindexOf("MSIE") >= 1) { objselect(); return documentselectioncreateRange()text; } else if (windownavigatoruserAgentindexOf("Firefox") >= 1) { if (objfiles) { return objfilesitem(0)getAsDataURL(); } return objvalue; } return objvalue; } } 但这样的代码在Ie下还是可行的,但在火狐下不兼容。所以又想通过servlet的第三方工具去做,例如FileUpload,本以为FileItem下的getName()方法能够得到全路径名,但结果仍然只得到文件名,很是杯具!求解决方法!?
引用至于你说的,不明白你的意思关键问题是我要获得这个路径,并且传递到后台!用js会有兼容性问题,如果用FileUpload上传,是否可以获得呢?我是没有得到的!!! 问题补充:zhanjia 写道上传文件一般用input标签,type为file,浏览选择文件后就是文件在本地的绝对路径了
引用至于你说的,不明白你的意思关键的问题是我要获得这个本地路径,并且传到后台!用js可以得到,但存在兼容性问题!?如果用FileUpload呢?我暂时还没有得到!!! 问题补充:zhanjia 写道网上的一些解决方案:
一般都是上传以后在数据库中保存上传后的文件路径,本地路径一般没意义
除非像上面所说的文件上传预览,还有那么点用处
我用来做数据接口的,我仅仅是把路径传给另一个系统,然后那个系统就可以从这个路径取文件了。
不知道你服务器端用什么语言处理的?
C#里面处理过,可以用requestfiles获得所有上传文件(>string savePath = @"d:\upload";
for(>}
其他语言应该也有类似的对象来处理吧
首先,你的file控件要放到form表单内,其次,每个file控件的name属性应该不同。下面是我修改后的:
<html>
</head>
<script language="javascript" type="text/ecmascript">
var x=1;
//======================
//功能:在表单中input file控件
//参数:parentID---要插入input file控件的父元素ID
// inputID----input file控件的ID
//======================
function createInput(parentID,inputFileID){
var parent=$(parentID);//获取父元素
var div=documentcreateElement("div");//创建一个div容器用于包含input file
x++;
var divName=inputFileID+x;//随机div容器的名称
divid=divName;
var aElement=documentcreateElement("input"); //创建input
aElementname=divName;
aElementtype="file";//设置类型为file
var delBtn=documentcreateElement("input");//再创建一个用于删除input file的Button
delBtntype="button";
delBtnvalue="删除";
delBtnonclick=function(){ removeInput(parentID,divName)};//为button设置onclick方法
divappendChild(aElement);//将input file加入div容器
divappendChild(delBtn);//将删除按钮加入div容器
parentappendChild(div);//将div容器加入父元素
}
//============================
//功能:删除一个包含input file的div 容器
//参数:parentID---input file控件的父元素ID
// DelDivID----个包含input file的div 容器ID
//============================
function removeInput(parentID,DelDivID){
var parent=$(parentID);
parentremoveChild($(DelDivID));
}
//通过元素ID获取文档中的元素
function $(v){return documentgetElementById(v);}
</script>
<body>
<form action="testphp" method="post" enctype="multipart/form-data">
<div align="left" id="div_Pic" style="border:1px solid #CCCCCC">
<input name="PicFile" type="file" id="ShowPicFile">
</div>
<input type="button" onClick="createInput('div_Pic','PicFile')" name="button" id="button" value="+ 继续添加">
<input type="submit" value="提交">
</body>
</html>
然后php就可以通过遍历$_FILES来获得每个上传的文件。下面的简单例子只是列出每个文件的原文件名:
<php
forEach($_FILES as $f){
echo $f["name"]"<br>";
}
>
11 分片、并发
分片与并发结合,将一个大文件分割成多块,并发上传,极大地提高大文件的上传速度。
当网络问题导致传输错误时,只需要重传出错分片,而不是整个文件。另外分片传输能够更加实时的跟踪上传进度。
12 预览、压缩
支持常用格式jpg,jpeg,gif,bmp,png预览与压缩,节省网络数据传输。
解析jpeg中的meta信息,对于各种orientation做了正确的处理,同时压缩后上传保留的所有原始meta数据。
13 多途径添加文件
支持文件多选,类型过滤,拖拽(文件&文件夹),粘贴功能。
粘贴功能主要体现在当有数据在剪切板中时(截屏工具如QQ(Ctrl + ALT + A), 网页中右击点击复制),Ctrl + V便可添加此文件。
14 HTML5 & FLASH
兼容主流浏览器,接口一致,实现了两套运行时支持,用户无需关心内部用了什么内核。
同时Flash部分没有做任何UI相关的工作,方便不关心flash的用户扩展和自定义业务需求。
15 MD5秒传
当文件体积大、量比较多时,支持上传前做文件md5值验证,一致则可直接跳过。
如果服务端与前端统一修改算法,取段md5,可大大提升验证性能,耗时在20ms左右。
16 易扩展、可拆分
采用可拆分机制, 将各个功能独立成了小组件,可自由搭配。
采用AMD规范组织代码,清晰明了,方便高级玩家扩展。
2、引入资源
21 下载包内容
├── Uploaderswf // SWF文件,当使用Flash运行时需要引入。
├── webuploaderjs // 完全版本。
├── webuploaderminjs // min版本
├── webuploaderflashonlyjs // 只有Flash实现的版本。
├── webuploaderflashonlyminjs // min版本
├── webuploaderhtml5onlyjs // 只有Html5实现的版本。
├── webuploaderhtml5onlyminjs // min版本
├── webuploaderwithoutimagejs // 去除处理的版本,包括HTML5和FLASH
└── webuploaderwithoutimageminjs // min版本
22 或者直接使用由staticfile提供的cdn版本,或者下载Git项目包。
// SWF文件,当使用Flash运行时需要引入。
├── >
无法获取本地文件的绝对路径,这里涉及到一个浏览器安全问题。
<input type="file" onchang="javascript:changeFile();" />// 选择文件
function changeFile () {
var e = this;
// 修正IE8下,文件上传异常
var files = efiles;
if (files == undefined) {
return false;
}
// 取得选择文件相关数据信息
var file = files[0], fileName = filename, fileSize = filesize;
// 获取文件后缀名
var fileType = fileNamesubstr(fileNamelastIndexOf(""))toLowerCase();
}
以上就是关于java或js(可用jquery)如何获取上传文件原始路径名全部的内容,包括:java或js(可用jquery)如何获取上传文件原始路径名、在js动态添加行并添加了一个Input file 控件,我怎么获取到它上传文件呢、JS动态创建的file控件,PHP 怎么获取上传的文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)