下面为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"]可以获取到文件名称!实在是糊涂了!还望大家一起讨论!谢了!
请教:ubuntu下PHP上传代码问题!
-
- 帖子: 38
- 注册时间: 2010-09-23 17:22
- hiphen
- 帖子: 803
- 注册时间: 2010-08-27 15:53
Re: 请教:ubuntu下PHP上传代码问题!
1. 建议发到编程论坛,例如csdn什么的
2. 不熟php,推断是apache的设置不同引起的问题,你对照win2003下的apache和ubuntu下的apache的配置文件,看哪个键值有出入的,修改为一致后试试
2. 不熟php,推断是apache的设置不同引起的问题,你对照win2003下的apache和ubuntu下的apache的配置文件,看哪个键值有出入的,修改为一致后试试
基础问题,请看入门手册http://people.ubuntu.com/~happyaron/udc-cn/lucid-html/
Acer aspire 4736G / Ubuntu 10.04LTS
Asus eeepc900 / Xandros
Nokia N900 / Maemo 1.2.12
Acer aspire 4736G / Ubuntu 10.04LTS
Asus eeepc900 / Xandros
Nokia N900 / Maemo 1.2.12
-
- 帖子: 23
- 注册时间: 2006-07-12 11:05
Re: 请教:ubuntu下PHP上传代码问题!
你试试在前面加上一些调试信息如:
<?php print_r($_FILES);?>
看看.
很多年不写程序了.呵呵.
我记得上传文件有个什么move_upload_file 还是什么的函数。记不清了,你查一下文档好了.
<?php print_r($_FILES);?>
看看.
很多年不写程序了.呵呵.
我记得上传文件有个什么move_upload_file 还是什么的函数。记不清了,你查一下文档好了.
fengyun520 写了:下面为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"]可以获取到文件名称!实在是糊涂了!还望大家一起讨论!谢了!
- leetom
- 帖子: 296
- 注册时间: 2009-01-23 19:28
Re: 请教:ubuntu下PHP上传代码问题!
我觉得可能是文件名编码的问题,ubuntu是utf8的,win上传的是gb18030的,要转码.
另外存储上传的文件是用move_upload_file,怎么用copy?
另外存储上传的文件是用move_upload_file,怎么用copy?
-
- 帖子: 23
- 注册时间: 2006-07-12 11:05
Re: 请教:ubuntu下PHP上传代码问题!
我觉得应该不是文件名问题.不过有时输入的资料后面可能会跟一个回车.用chop去删除掉试试.