java或js(可用jquery)如何获取上传文件原始路径名

java或js(可用jquery)如何获取上传文件原始路径名,第1张

上传文件时,我想获取客户端上传文件的原始路径。第一考虑,当然是使用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 怎么获取上传的文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/web/10127851.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存