filebox无法获取文件路径

影非弦 2015-06-22 09:25:05
使用的是easyui1.4.2版本的,在选择文件之后,文件的路径变成了C:\fakepath\文件名,使用$('#uploadfile').val()得到的值为空,网上查了一下,有人说是因为filebox没有id属性,给jquery.easyui.mini.js中添加一下id属性,我看了下jquery.easyui.min.js文件中,已经有了id,实在是不知道是什么原因了
(function($){
var _4b6=0;
function _4b7(_4b8){
var _4b9=$.data(_4b8,"filebox");
var opts=_4b9.options;
var id="filebox_file_id_"+(++_4b6);
$(_4b8).addClass("filebox-f").textbox(opts);
$(_4b8).textbox("textbox").attr("readonly","readonly");
_4b9.filebox=$(_4b8).next().addClass("filebox");
_4b9.filebox.find(".textbox-value").remove();
opts.oldValue="";
var file=$("<input type=\"file\" class=\"textbox-value\">").appendTo(_4b9.filebox);
file.attr("id",id).attr("name",$(_4b8).attr("textboxName")||"");
file.change(function(){
$(_4b8).filebox("setText",this.value);
opts.onChange.call(_4b8,this.value,opts.oldValue);
opts.oldValue=this.value;
});

下面是页面上的代码:
<div id="dd" class="easyui-window" title="一键导入" data-options="top:'80px',modal:true,closed:true,iconCls:'icon-save'" style="width:300px;height:200px;padding:10px;">
<div style="margin-bottom:20px;">
<input id="uploadfile" name="uploadfile2" class="easyui-filebox" data-options="onChange:function(){alert($(this).filebox('getValue'))},prompt:'请选择一个Excel文件'" style="width:100%;">
</div>
<div align="right">
<a href="#" class="easyui-linkbutton" style="width:100%" onclick="return ajaxFileUpload();">上 传</a>
</div>
<div>
<img src="images/loading.gif" id="loading" style="display: none;">
</div>
</div>

下面是js中的代码:
function ajaxFileUpload(){

$('#loading').ajaxStart(function(){
$(this).show();
})//开始上传文件时显示一个图片
.ajaxComplete(function(){
$(this).hide();
});

$.ajaxFileUpload({
url:'servlet/ReadExcelServlet',//用于文件上传的服务器端请求地址
secureuri:true,//是否启用安全提交,一般设置为false
fileElementId:'uploadfile',//文件上传控件的id
dataType:'text',//服务器返回的数据类型
success: function (data,status){
if(data == 'success'){
$('#dd').window('close');
alert("导入成功!");
}else if(data == 'error'){
alert("文件上传过程中出错!请重试!");
}
},
error: function (data,status,e){
alert("服务中断或连接超时导致通信失败!");
alert(e);
}
}
)
return false;
}

如图所示是选择文件之后的filebox:
...全文
5315 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
九尾狐的yi巴 2016-03-28
  • 打赏
  • 举报
回复
用$('#uploadfile").filebox('getValue')可以获取到带那个虚拟路径的地址。对我来说是很有用的。 之前我用$("#uploadfile").val() 将获得不到值
sunshiwu1984 2015-07-13
  • 打赏
  • 举报
回复
这个是选择文件框<INPUT id="file1" class="input" size="70" type="file" name="file"/> 导入的时候自己用js处理下就能得到真正的路径了,realPath就是真正的上传路径,以前处理过,你试试吧。 function importData(){ var file = document.getElementById('file1'); var realPath = getPath(file); } function getPath(obj) { if(obj) { if (window.navigator.userAgent.indexOf("MSIE")>=1) { obj.select(); document.getElementById("button").focus(); return document.selection.createRange().text; } else if(window.navigator.userAgent.indexOf("Firefox")>=1) { if(obj.files) { return obj.files.item(0).getAsDataURL(); } return obj.value; } return obj.value; } }
sundezhao 2015-07-12
  • 打赏
  • 举报
回复
用$('#uploadfile").filebox('getValue')获取
Go 旅城通票 2015-06-23
  • 打赏
  • 举报
回复
浏览器配置的问题,ie6可以,ie7+或者标准浏览器获取不到,需要配置浏览器才行,和easyui无关
  • 打赏
  • 举报
回复
客户端路径你要了也没用…… 这个是浏览器安全机制,最新的版本都不允许直接获取到文件在客户端的物理路径

52,797

社区成员

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

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