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

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
fengyun520
帖子: 38
注册时间: 2010-09-23 17:22
送出感谢: 0
接收感谢: 0

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

#1

帖子 fengyun520 » 2010-11-28 20:59

下面为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"]可以获取到文件名称!实在是糊涂了!还望大家一起讨论!谢了!
头像
hiphen
帖子: 803
注册时间: 2010-08-27 15:53
送出感谢: 0
接收感谢: 1 次

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

#2

帖子 hiphen » 2010-11-29 15:14

1. 建议发到编程论坛,例如csdn什么的
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
songyi1999
帖子: 23
注册时间: 2006-07-12 11:05
送出感谢: 0
接收感谢: 0

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

#3

帖子 songyi1999 » 2010-11-30 21:19

你试试在前面加上一些调试信息如:
<?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
送出感谢: 0
接收感谢: 0

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

#4

帖子 leetom » 2010-12-01 16:57

我觉得可能是文件名编码的问题,ubuntu是utf8的,win上传的是gb18030的,要转码.
另外存储上传的文件是用move_upload_file,怎么用copy?
songyi1999
帖子: 23
注册时间: 2006-07-12 11:05
送出感谢: 0
接收感谢: 0

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

#5

帖子 songyi1999 » 2010-12-01 19:03

我觉得应该不是文件名问题.不过有时输入的资料后面可能会跟一个回车.用chop去删除掉试试.
回复

回到 “服务器基础应用”