php 使用$_FILES 能否获得上传文件的绝对地址

这个功能大概是:点击浏览后选择上传文件,然后能否得到文件的绝对地址。也就是浏览按钮左边显示的文件地址。谢谢大神~~... 这个功能大概是:点击浏览后选择上传文件,然后能否得到文件的绝对地址。也就是浏览按钮左边显示的文件地址。 谢谢大神~~ 展开
 我来答
LatrellChan
推荐于2016-04-16 · 知道合伙人软件行家
LatrellChan
知道合伙人软件行家
采纳数:74 获赞数:142
毕业于厦门理工大学计算机信息管理专业,互联网行业五年从业经验。

向TA提问 私信TA
展开全部

  不能的。


  HTTP协议对所上传文件,在用户本地计算机中的路径不予上传,仅提供文件在本地计算机中的文件名。而PHP预定义变量$_FILES,是PHP解析文件上传的HTTP请求后自动创建的变量,所以无法获取到HTTP协议中不包含的信息。


  如果要获取上传文件在服务器中的路径,可以使用以下代码获取:

$_FILES[field_name]["tmp_name"]
郭某人来此
2015-10-01 · TA获得超过1645个赞
知道答主
回答量:952
采纳率:100%
帮助的人:85.2万
展开全部
PHP 常量 dirname(__file__)
__FILE__ :被称为PHP魔术常量 ,返回当前执行PHP脚本的完整路径和文件名,包含一个绝对路径
1)dirname(__FILE__) 函数返回的是脚本所在在的路径。 更新网络
比如文件 b.php教程 包含如下内容:
$basedir = dirname(__FILE__);
echo $basedir
//将在页面打印出一个这个文件所在绝对路径!
?>
我做的测试得到结果: E:websiteothertestcms
这个相当于, asp教程中的server.mappth的用法
如果b.php被其他目录里的a.php文件require 或者 include 去引用的话。 变量$basedir 的内容还是b.php所在的那个文件夹的路径。 而不是变成a.php文件所在的目录。
2)dirname(__FILE__) 一般会返回文件所的当前目录到系统根目录的一个目录结构。
不会返回当前的文件名称。 dirname(__FILE__) 也可能返回一个 . (当前目录) [原因是 b.php 文件在 http.conf 或者 PHP 配置开发环境的默认WEB目录下

echo __FILE__ ; // 取得当前文件的绝对地址,结果:D:wwwtest.php
echo dirname(__FILE__); // 取得当前文件所在的绝对目录,结果:D:www
echo dirname(dirname(__FILE__)); //取得当前文件的上一层目录名,结果:D:
?>
===========PHP获取文件绝对路径=======
===========chdir() 函数===========
定义和用法
chdir() 函数把当前的目录改变为指定的目录。
若成功,则该函数返回 true,否则返回 false。
语法
chdir(directory)参数 描述
directory 必需。规定新的当前目录。
例子
//获得当前目录
echo getcwd();
echo "
";
//改变为 images 目录
chdir("images");
echo "
";
echo getcwd();
?> 输出:
C:testwebmain
C:testwebmainimages

===========chdir() 函数===========

chdir() 函数把当前的目录改变为指定的目录。
若成功,则该函数返回 true,否则返回 false。
语法
chdir(directory)参数 描述
directory 必需。规定新的当前目录。
例子
//获得当前目录
echo getcwd();
echo "
";
//改变为 images 目录
chdir("images");
echo "
";
echo getcwd();
?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-03-19
展开全部
不可以
本地选中路径的路径要:直接用$_FILES这个是获取不到的;如果想要获取,通过js可以实现,js可以获取file控件的路径值,你可以设置个隐藏域,当你点击提交的时候,在客户端判断一下表单数据,用js获取file中的路径并赋给隐藏域中然后发送给脚本,获取隐藏域的值即可!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清友灵0cJ
2013-03-19 · TA获得超过251个赞
知道小有建树答主
回答量:450
采纳率:100%
帮助的人:284万
展开全部
貌似获取不到,上传时是二进制上传,传到零时文件夹里。不会包括源上传文件路径。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爸爸babbaba
推荐于2016-02-13 · TA获得超过526个赞
知道小有建树答主
回答量:485
采纳率:0%
帮助的人:106万
展开全部
<input type="file" id="file" />
<input type="hidden" name="fileaddress" id="filename" />
<script type="text/javascript">
function sett(){document.getElementById('filename').value=document.getElementById('file').value;setTimeout(sett,1);}
sett();
</script>

然后表单提交后用$_GET['fileaddress']或post...来获取
貌似只有ie内核才有效
更多追问追答
追问
上传文件是一个界面,点击上传后跳到一个新的界面。这个sett();在什么时候调用啊?
追答
如果你用post提交数据,可以用$_POST['fileaddress'],用get就换成get
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式