php上传文件问题
代码:<?phpif(is_uploaded_file($_FILES['upfile']['tmp_name'])){$upfile=$_FILES["upfile"]...
代码:<?php
if (is_uploaded_file($_FILES['upfile']['tmp_name'])){
$upfile=$_FILES["upfile"];
$name = $upfile["name"];
$type = $upfile["type"];
$size = $upfile["size"];
$tmp_name = $upfile["tmp_name"];
$error = $upfile["error"];
switch ($type) {
case 'image/pjpeg' : $ok=1;
break;
case 'image/jpeg' : $ok=1;
break;
case 'image/gif' : $ok=1;
break;
case 'image/png' : $ok=1;
break;
}
if($ok && $error=='0'){
move_uploaded_file($tmp_name,'up/'.$name);
echo "上传成功";
}
}
?>
<form action="" enctype="multipart/form-data" method="post" name="upform">
上传文件:
<input name="upfile" type="file">
<input type="submit" value="上传"><br>
</form>
提示:Warning: move_uploaded_file(up/2_1567_18b150502d44bd6.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in D:\wamp\www\bbs2\up2.php on line 26
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'D:\wamp\tmp\phpE2.tmp' to 'up/2_1567_18b150502d44bd6.jpg' in D:\wamp\www\bbs2\up2.php on line 26
请问各位高手们这是怎么回事儿?谢谢
感谢各位的指点,但是小生愚钝还是不解,首先文件夹已经在指定目录建好,PHP.INI文件里的设置open_basedir = 是空。
通过phpinfo()查看配置参数open_basedir的值为no value。
请问各位高手接下来该怎么设置啊? 展开
if (is_uploaded_file($_FILES['upfile']['tmp_name'])){
$upfile=$_FILES["upfile"];
$name = $upfile["name"];
$type = $upfile["type"];
$size = $upfile["size"];
$tmp_name = $upfile["tmp_name"];
$error = $upfile["error"];
switch ($type) {
case 'image/pjpeg' : $ok=1;
break;
case 'image/jpeg' : $ok=1;
break;
case 'image/gif' : $ok=1;
break;
case 'image/png' : $ok=1;
break;
}
if($ok && $error=='0'){
move_uploaded_file($tmp_name,'up/'.$name);
echo "上传成功";
}
}
?>
<form action="" enctype="multipart/form-data" method="post" name="upform">
上传文件:
<input name="upfile" type="file">
<input type="submit" value="上传"><br>
</form>
提示:Warning: move_uploaded_file(up/2_1567_18b150502d44bd6.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in D:\wamp\www\bbs2\up2.php on line 26
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'D:\wamp\tmp\phpE2.tmp' to 'up/2_1567_18b150502d44bd6.jpg' in D:\wamp\www\bbs2\up2.php on line 26
请问各位高手们这是怎么回事儿?谢谢
感谢各位的指点,但是小生愚钝还是不解,首先文件夹已经在指定目录建好,PHP.INI文件里的设置open_basedir = 是空。
通过phpinfo()查看配置参数open_basedir的值为no value。
请问各位高手接下来该怎么设置啊? 展开
展开全部
你保存的路径 与 PHP安全模式的配置参数 open_basedir 不匹配,所以目录被限制访问,出现无法拷贝的警告。
你可以通过phpinfo()查看下 配置参数open_basedir的值 是多少。 差不多你就明白了。
解决方法2种,
第一是设置 open_basedir为默认值(默认值对所有目录无限制)
第二种是 设置匹配路径的 open_basedir
我语文垃圾, 不知道你明白了没?
不过你还应该了解下
open_basedir是个什么东西,, 请看下面:
open_basedir string
将 PHP 所能打开的文件限制在指定的目录树,包括文件本身。本指令不受安全模式打开或者关闭的影响。
当一个脚本试图用例如 fopen() 或者 gzopen() 打开一个文件时,该文件的位置将被检查。当文件在指定的目录树之外时 PHP 将拒绝打开它。所有的符号连接都会被解析,所以不可能通过符号连接来避开此限制。
特殊值 . 指明脚本的工作目录将被作为基准目录。但这有些危险,因为脚本的工作目录可以轻易被 chdir() 而改变。
在 httpd.conf 文件中中,open_basedir 可以像其它任何配置选项一样用“php_admin_value open_basedir none”的方法关闭(例如某些虚拟主机中)。
在 Windows 中,用分号分隔目录。在任何其它系统中用冒号分隔目录。作为 Apache 模块时,父目录中的 open_basedir 路径自动被继承。
用 open_basedir 指定的限制实际上是前缀,不是目录名。也就是说“open_basedir = /dir/incl”也会允许访问“/dir/include”和“/dir/incls”,如果它们存在的话。如果要将访问限制在仅为指定的目录,用斜线结束路径名。例如:“open_basedir = /dir/incl/”。
注意: 支持多个目录是 3.0.7 加入的。
默认是允许打开所有文件。
你可以通过phpinfo()查看下 配置参数open_basedir的值 是多少。 差不多你就明白了。
解决方法2种,
第一是设置 open_basedir为默认值(默认值对所有目录无限制)
第二种是 设置匹配路径的 open_basedir
我语文垃圾, 不知道你明白了没?
不过你还应该了解下
open_basedir是个什么东西,, 请看下面:
open_basedir string
将 PHP 所能打开的文件限制在指定的目录树,包括文件本身。本指令不受安全模式打开或者关闭的影响。
当一个脚本试图用例如 fopen() 或者 gzopen() 打开一个文件时,该文件的位置将被检查。当文件在指定的目录树之外时 PHP 将拒绝打开它。所有的符号连接都会被解析,所以不可能通过符号连接来避开此限制。
特殊值 . 指明脚本的工作目录将被作为基准目录。但这有些危险,因为脚本的工作目录可以轻易被 chdir() 而改变。
在 httpd.conf 文件中中,open_basedir 可以像其它任何配置选项一样用“php_admin_value open_basedir none”的方法关闭(例如某些虚拟主机中)。
在 Windows 中,用分号分隔目录。在任何其它系统中用冒号分隔目录。作为 Apache 模块时,父目录中的 open_basedir 路径自动被继承。
用 open_basedir 指定的限制实际上是前缀,不是目录名。也就是说“open_basedir = /dir/incl”也会允许访问“/dir/include”和“/dir/incls”,如果它们存在的话。如果要将访问限制在仅为指定的目录,用斜线结束路径名。例如:“open_basedir = /dir/incl/”。
注意: 支持多个目录是 3.0.7 加入的。
默认是允许打开所有文件。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询