为什么js获取到的FileUpload的绝对路径是C:fakepath

为什么js获取到的FileUpload的绝对路径是C:fakepath,第1张

你好!

fileupload理论上不设置浏览器是不可能取到本地路径的。

你可以想想,如果用fileupload可以轻易获取到本地路径,那别人随便写个程序,不就可以把你本地的各种文件遍历传到服务器了,那不就可以随便**文件了。

所以一般是换一种做法,用一个textbox存储路径,用一个button完成上传功能。至于上传的代码方法多了。一种是用stream类,一种是用webclient上传,方法很多的。

在firefox上,input(type=file)默认获取到的value值就是文件名

在IE上,input(type=file)默认获取到的value值是路径。

因此用js来获取fileupload中的上传文件的文件名需要多方面考虑。

示例代码:

<form action="" method="get" onSubmit="return false;">

<input type="text" name="test" id="test">

<input type="file" name="testFile" onChange="if(thisvalue)insertTitle(thisvalue);">

<input type="submit" value="提交">

</form>

<script language="javascript">

function insertTitle(path){

var test1 = pathlastIndexOf("/"); //对路径进行截取

var test2 = pathlastIndexOf("\\"); //对路径进行截取

var test= Mathmax(test1, test2)

if(test<0){

documentgetElementById("test")value = path;

}else{

documentgetElementById("test")value = pathsubstring(test + 1); //赋值文件名

}

}

</script>

1首先是jsp

<button class="btn button uploadAndNext" id="importWhiteBtn" type="button">

<span class="button">提交导入</span>

</button>

2然后是js

$(function(){

var uploadCom = null;

function uploadIt() {

$("#importWhiteBtn")click(function() {

var uploadId = "#" + $(this)attr("id");

var btn = $(this);

uploadCom = new AjaxUpload( uploadId + "" , {

action : "whitePhoneNumberdoaction=importFile",

onSubmit: function(file, ext) {

if ((ext && /^(txt)$/test(ext))) {

alert("请先下载导入模板readmetxt参考,您上传的文档格式不对,请重新选择!");

return false;

}

$blockUI({

message:"正在上传到服务器"

})

},

onComplete: function(file, response) {

$unblockUI();

if(response=="success"){

alert( "导入成功");

$('#whitePhoneList')flexReload();

}else{

alert( "导入失败,"+response);

}

}

});

});

$("uploadAndNext")click();

}

uploadIt();

firstClick = false;

})

3最后是action

public ActionForward importFile(ActionMapping mapping, ActionForm form,

>

documentgetElementById("<%=

fuFileClientID

%>")value

用这种方法在js里可以获取到文件的完全路径

你试试吧

我马上要断网了

 FileUpload的时候, Postback的时候文件已经传到后台了, 用FileUploadFileBytes就能取得文件内容了。

和浏览器相关。如果要突破这个限制,需要编写和部署activex控件

以上就是关于为什么js获取到的FileUpload的绝对路径是C:\fakepath\全部的内容,包括:为什么js获取到的FileUpload的绝对路径是C:\fakepath\、怎么用js来获取 fileupload中的上传文件的文件名、jquery 获取fileupload的完整路径。给完整的代码。直接可以用的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9496546.html

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

发表评论

登录后才能评论

评论列表(0条)

保存