请教:ubuntu下PHP上传代码问题!

kaifadi 2010-11-28 08:58:07
下面为PHP上传代码!
<html>
<head>
<title>上传文件</title>
</head>
<body>
<form enctype="multipart/form-data" name="form1" method="post" action="?act=ddd">
<input type="file" name="file" >
<input type="submit" name="submit" value="提交">
</form>
</body>
</html>
<?php
if(isset($_GET["act"])&&$_GET["act"]=='ddd')
{
echo $_FILES["file"]["tmp_name"]."@@@"; //这里无法获取到值,在WINDOWS下代码一切正常!
$filename =$_FILES['file']['name'];
$path ="./uploads/".$_FILES['file']['name'];
$date =date("Y-m-d");

if($filename!="")
{
if(copy($_FILES['file']['tmp_name'],$path))
{
echo "上传成功!";
}
else
{
echo"上传失败!";
}
}
else
{
echo "无法获取到FILE控件的值!";
}
}
?>
该代码在WIN2003的服务器中一切正常,不管是ubuntu还是windows的系统都能正常操作访问!也就是能轻易把本地端的文件上传到服务端!
但是如果把平台换到UBUNTU的LAMP下 ,其他操作系统的机器就无法访问了。提示各种奇怪的错误!
我在WIN2003下访问UBUNTU服务器里的PHP代码结果是: $_FILES["file"]["tmp_name"]这个取不到值,但 $_FILES["file"]["name"]可以获取到文件名称!实在是糊涂了!还望大家一起讨论!
...全文
178 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
kaifadi 2010-12-02
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 shen920 的回复:]

问题很简单 就是
upload_max_filesize
post_max_size

post_max_size比upload_max_filesize
上传文件大于设置了 这个我2天前也出了这个问题
[/Quote]
如果是大于这个值了。那请问同样的文件为什么在本地端可以上传,换成其他系统来操作就不行了呢?很不理这点。难道你的也是这种情况?本地端可以,外机系统访问就出错了?你的也是这样?能否解释下,谢了!
thisboy_star 2010-12-01
  • 打赏
  • 举报
回复
php.ini设置问题。
ihefe 2010-12-01
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 falizixun2 的回复:]

继续顶起。望知道的人提个建议,谢了!
[/Quote]

看看是否路径出错。 linux 路径和windows路径的斜杠有区别

路径的斜杠我喜欢这么用

define('DS', DIRECTORY_SEPARATOR);

shen920 2010-12-01
  • 打赏
  • 举报
回复
问题很简单 就是
upload_max_filesize
post_max_size

post_max_size比upload_max_filesize
上传文件大于设置了 这个我2天前也出了这个问题
kaifadi 2010-12-01
  • 打赏
  • 举报
回复
继续顶起。望知道的人提个建议,谢了!
kaifadi 2010-11-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ihefe 的回复:]

PHP code

//试试设置php.ini

upload_max_filesize
post_max_size

post_max_size比upload_max_filesize大
[/Quote]

我感觉这3个关系不大吧:
upload_max_filesize
post_max_size

post_max_size比upload_max_filesize大

如果有问题,那本地端测试也不可能可以上传的!
ihefe 2010-11-29
  • 打赏
  • 举报
回复

//试试设置php.ini

upload_max_filesize
post_max_size

post_max_size比upload_max_filesize大

kaifadi 2010-11-28
  • 打赏
  • 举报
回复
ubuntu里的nobody是什么意思,相当于windows下的everyone吗??

也有可能是PHP 设置里禁止了 上传功能.可查看php.ini下 file_uploads 的值
这个就绝对不可能了。如果是这个原因。本地端不可能能测试成功的!对吧!
ghostxyz0 2010-11-28
  • 打赏
  • 举报
回复
初步猜测是apache 的权限 不够

记得apache 默认是以 nobody 的权限. 在httpd.conf 里改

也有可能是PHP 设置里禁止了 上传功能.可查看php.ini下 file_uploads 的值
kaifadi 2010-11-28
  • 打赏
  • 举报
回复


ubuntu下,现在WEB根目录和TMP目录的权限所有者都是root。如果是权限问题,那该怎么修改呢?
对ubuntu系统也不是很熟,只是知道点皮毛而已!
kaifadi 2010-11-28
  • 打赏
  • 举报
回复
在UBUNTU本地操作测试,http://localhost/*.php形式,也没有问题,但换成其他系统,以htpp://ip地址/*.php形式,来访问这个UBUNTU服务器的时候就不行了!而且我用的是root用户来重启了一次ubuntu上的apache2 /etc/init.d/apache2 restart ,但是问题依旧!
kaifadi 2010-11-28
  • 打赏
  • 举报
回复
页面显示:
@@@ Warning: copy(): Filename cannot be empty in /home/phpstudy/1.php on line 22 上传失败!
第22行就是这行:if(copy($_FILES['file']['tmp_name'],$path))
heyli 2010-11-28
  • 打赏
  • 举报
回复
是否有足够的权限 提示什么错误

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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