作者jscorpio1 (我 天蠍)
看板PHP
标题[请益] move_uploaded_file 失败
时间Sat Feb 23 12:23:05 2013
错误讯息如连结所示
http://ppt.cc/CTLy
部份程式码如下
if($_FILES["myfile"]["error"] == UPLOAD_ERROR_OK)
{
$file=$_FILES["myfile"]["name"];
$upload_file = $upload_dir . $file;
echo "file is $file<br />";
echo "upload_file is $upload_file<br />";
$tmpname = $_FILES["myfile"]["tmp_name"];
echo "tmp_name is $tmpname<br />";
move_uploaded_file($_FILES["myfile"]["tmp_name"],$upload_file);
}
else echo $_FILES["myfile"]["error"];
作业系统是WinXP
网站是Appserv
实在是不知道到底哪里有问题??
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.120.62.170
1F:→ kerash:别用中文 02/23 12:32
2F:→ LaPass:档名问题.... 02/23 13:07
3F:→ mervynW:xp 应该还是acsii, 所以走big5, 我想你程式大概用utf-8,爆 02/23 13:29
感谢以上几位大大的回应
我有google到一篇文章说
utf-8 编码网页无法在 big5 系统正确处理中文档名,
原因在於 move_uploaded_file() 不能处理 utf-8 中文编码,
需利用 iconv() 函数作转码
我改了之後,也确实能用了。
但我又想到
1.utf8网页上传中文档出现错误的这个问题,也同样会发生在Linux上吗?
2.使用iconv是治标 还是 治本 的方法呢?
如果是治标,那治本的方法是什麽?
※ 编辑: jscorpio1 来自: 140.120.62.170 (02/23 14:16)
4F:→ Bambe:基本上是看你的server系统用的是微软系列还是linux系列 02/23 15:28
5F:→ Bambe:原po的问题在於说php将档案丢到指定位置时,因为目的档名的 02/23 15:31
6F:→ Bambe:编码是utf8,系统无法解析,才会错误,因此才需要将档名 02/23 15:31
7F:→ Bambe:iconv 至 big5 才能将档案移动到正确的位置上 02/23 15:32
8F:→ Bambe:由於linux的编码预设就是utf8,基本上不会有这个问题出现 02/23 15:33
9F:→ Bambe:当然,也要取决於你的网页编码用的也要是utf8就是了 :) 02/23 15:37
10F:→ jscorpio1:微软系统是指Win Server也是吗?还是单指WinXP/Win7? 02/23 17:45
11F:→ mervynW:win vista+好像就是 utf-8 了 02/23 18:07
12F:→ mervynW:不过不要用特殊符号(包涵中文字)还是正途 02/23 18:08
13F:→ buganini:1.原档名放资料库,档名改成编号 02/23 20:24
14F:→ buganini:2. 丢掉windows 02/23 20:24
15F:→ buganini:不是windows版本的问题,是windows api分成两套 02/23 20:25
16F:→ buganini:PHP用的那套读出来会是big5 02/23 20:25
17F:→ buganini:用iconv不是个完美的方案,档名有其他语言或有UAO就炸了 02/23 20:26
18F:→ Bambe:可以请教楼上大大给个完整的说明吗@@之前曾经为了档案系统编 02/23 23:09
19F:→ Bambe:码搞的想撞墙,所以想跟大大学习一番 :) 02/23 23:09
20F:→ Bambe: 教学 02/23 23:10
21F:→ Bambe: 拍谢是想更新第一句说的话 02/23 23:10