一上传,到了文件夹内中文就变乱码了!! 跪求大神指点。
先上表单页面的代码
<form action="upload_file.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
<table width="800" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="40" align="right">资料名称:</td>
<td><label>
<input type="text" name="title" id="title" />
</label></td>
</tr>
<tr>
<td width="148" height="40" align="right">上传资料:</td>
<td width="352"><label for="file"></label>
<input type="file" name="file" id="file" />
<br /></td>
</tr>
<tr>
<td height="35" align="right">上传时间:</td>
<td><input name="sj" type="text" id="sj" value="<?php echo $timer;?>" /></td>
</tr>
<tr>
<td height="35" align="right"> </td>
<td><label>
<input type="submit" name="submit" value="提交" />
<input name="key" type="hidden" id="key" value="add" />
</label></td>
</tr>
</table>
</form>
然后到我的上传系统代码<?php $key=@$_REQUEST["key"];
$title=@$_REQUEST["title"];
$sj=@$_REQUEST["sj"];
if($key=="add")
{$sql = "SELECT * FROM ziliao where title='".$title."' ";
$result = mysql_query($sql);
if($cs= mysql_fetch_array($result))//若记录集里面存在接收到得用户名及密码
{
alertgo('此文件名已存在,请更改名字再上传',"loadadd.php");
exit();
}/*上传器代码*/if ($_FILES["file"]["size"] < 1000000)
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "文件名: " . $_FILES["file"]["name"] . "<br />";
echo "文件类型: " . $_FILES["file"]["type"] . "<br />";
echo "文件大小: " . (round($_FILES["file"]["size"] / 1024,2)) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />"; if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . "<span style='color:#ff3300'>文件已存在,请重新上传</span> ";
alertgo('文件已存在,请重新上传',"loadadd.php");
exit();
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "文件存放在: " . "/admin/load/upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "文件容量不能大于1M";
}/*上传器代码*/
$wjqm2=$_FILES["file"]["name"];
$wjqm= move_uploaded_file($file["tmp_name"],iconv("UTF-8","gb2312","/admin/load/upload/".$wjqm2));//这句完全没用
$dx=round($_FILES["file"]["size"] / 1024,2);
$dz="/admin/load/upload/" . $_FILES["file"]["name"];$sql = "INSERT INTO ziliao (title,sj,dx,dz,wjqm)
values
('".$title."','".$sj."','".$dx."','".$dz."','".$wjqm."')";
$result = mysql_query($sql)or die ($sql."无法插入数据!! ");alertgo('资料上传成功',"loadadd.php");
}
?>
首先我的所有编码没问题,检查过了什么数据库,页面,等。
网上的这个方面 试了N次 都不行!php utf-8编码: move_uploaded_file( $file["tmp_name"], iconv("UTF-8","gb2312", $path)); //你的系统默认GBK编码!
php GB2312编码:move_uploaded_file( $file["tmp_name"], iconv("gb2312"," UTF-8",$path)); //你的系统默认UTF8跪求大爷指点 供上100分phpfile中文乱码
先上表单页面的代码
<form action="upload_file.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
<table width="800" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="40" align="right">资料名称:</td>
<td><label>
<input type="text" name="title" id="title" />
</label></td>
</tr>
<tr>
<td width="148" height="40" align="right">上传资料:</td>
<td width="352"><label for="file"></label>
<input type="file" name="file" id="file" />
<br /></td>
</tr>
<tr>
<td height="35" align="right">上传时间:</td>
<td><input name="sj" type="text" id="sj" value="<?php echo $timer;?>" /></td>
</tr>
<tr>
<td height="35" align="right"> </td>
<td><label>
<input type="submit" name="submit" value="提交" />
<input name="key" type="hidden" id="key" value="add" />
</label></td>
</tr>
</table>
</form>
然后到我的上传系统代码<?php $key=@$_REQUEST["key"];
$title=@$_REQUEST["title"];
$sj=@$_REQUEST["sj"];
if($key=="add")
{$sql = "SELECT * FROM ziliao where title='".$title."' ";
$result = mysql_query($sql);
if($cs= mysql_fetch_array($result))//若记录集里面存在接收到得用户名及密码
{
alertgo('此文件名已存在,请更改名字再上传',"loadadd.php");
exit();
}/*上传器代码*/if ($_FILES["file"]["size"] < 1000000)
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "文件名: " . $_FILES["file"]["name"] . "<br />";
echo "文件类型: " . $_FILES["file"]["type"] . "<br />";
echo "文件大小: " . (round($_FILES["file"]["size"] / 1024,2)) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />"; if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . "<span style='color:#ff3300'>文件已存在,请重新上传</span> ";
alertgo('文件已存在,请重新上传',"loadadd.php");
exit();
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "文件存放在: " . "/admin/load/upload/" . $_FILES["file"]["name"];
}
}
}
else
{
echo "文件容量不能大于1M";
}/*上传器代码*/
$wjqm2=$_FILES["file"]["name"];
$wjqm= move_uploaded_file($file["tmp_name"],iconv("UTF-8","gb2312","/admin/load/upload/".$wjqm2));//这句完全没用
$dx=round($_FILES["file"]["size"] / 1024,2);
$dz="/admin/load/upload/" . $_FILES["file"]["name"];$sql = "INSERT INTO ziliao (title,sj,dx,dz,wjqm)
values
('".$title."','".$sj."','".$dx."','".$dz."','".$wjqm."')";
$result = mysql_query($sql)or die ($sql."无法插入数据!! ");alertgo('资料上传成功',"loadadd.php");
}
?>
首先我的所有编码没问题,检查过了什么数据库,页面,等。
网上的这个方面 试了N次 都不行!php utf-8编码: move_uploaded_file( $file["tmp_name"], iconv("UTF-8","gb2312", $path)); //你的系统默认GBK编码!
php GB2312编码:move_uploaded_file( $file["tmp_name"], iconv("gb2312"," UTF-8",$path)); //你的系统默认UTF8跪求大爷指点 供上100分phpfile中文乱码
iconv("原有编码","要转的编码",变量);一。数据库编码最好是UTF-8二。上传文件表单页面用GB2312编码,注意一点表单用密文发送;三。上传系统文件用GB2312编码,然后讲所需要插入数据库的变量全部转码,从GB2312转到UTF-8
例如:
$wjqm=$_FILES["file"]["name"];
$wjqm=iconv("GB2312","UTF-8",$wjqm);
四。数据查看页面(其实就是从数据库读取出刚添加了的数据的页面),页面编码方式是GB2312,要把读取出来的数据
从UTF-8转到 GB2312
例如:
<?php echo iconv("UTF-8","GB2312",$cs["wjqm"]); ?>五。删除页面,用GB2312编码。
接收到的删除地址,讲UTF-8转为GB2312
例如:
$dz=@$_REQUEST["dz"];
$dz=iconv("UTF-8","GB2312",$dz);