中易网

高手进,php上传文件乱码问题

答案:2  悬赏:60  
解决时间 2021-04-26 22:51

用php写的文件上传代码,可是上传在指定目录里的文件的文件名是乱码~~

<?php

$uptypes=array("application/msword","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/vnd.ms-publisher","application/vnd.ms-powerpoint","application/vnd.ms-excel");//上传文件类型列表
$destination_folder="file/"; //上传文件路径
?>
<form enctype="multipart/form-data" method="post" name="upform">
<table>
<tr>
<td height="30">上传文档:</td>
</tr>
<tr>
<td height="30"><input name="upfile" type="file" class="file_submit"></td>
</tr>
<tr>
<td>允许上传的文件类型: doc, xls, ppt, docx, xlsx, pptx</td>
</tr>
<tr>
<td><input type="submit" value="上&nbsp;传" class="picturesubmit_botton"></td>
</tr>
</table>
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
?>
<div class="picturemessage">
<?php
if(!is_uploaded_file($_FILES['upfile'][tmp_name]))
//是否存在文件
{
echo "文件大小请不要超过4M!";
}else{
$file = $_FILES['upfile'];
if(!in_array($file['type'], $uptypes))
//检查文件类型
{
echo "文件类型不符!".$file['type'];
}else{
if(!file_exists($destination_folder))
{
mkdir($destination_folder);
}
$filename=$file['tmp_name'];
$image_size = getimagesize($filename);
$thefilename= $file['name'];
$destination = $destination_folder.$thefilename;
if (file_exists($destination) && $overwrite != true)
{
echo "<font color=red>同名文件已经存在了</font>";
}else{
if(!move_uploaded_file ($filename, $destination))
{
echo "<font color=red>移动文件出错!</font>";
}else{
date_default_timezone_set('Asia/Shanghai');
$date=date("Y-m-d H:i:s");
$author=$teamname[$team-1];
$input="INSERT INTO `article_menu` ( `num` , `title` , `author` , `article` , `date` , `picture` , `team` , `key` , `clicknum` )
VALUES (
NULL , '$thefilename', '$author', '', '$date', '0', '$team', '5', '0'
)";
$response=mysql_query($input);
$change=mysql_query("UPDATE `order` SET `num` = num+1 WHERe `order`.`team` =$team LIMIT 1");
mysql_close($select);
echo "<font color=red>已经成功上传</font><br>文件名:<font color=blue><a href=\"".$destination_folder.$fname."\">".$fname."</a></font><br>";
echo "大小:".$file['size']." bytes";
}}}}
?>
</div>
<?php
}
?>

最佳答案

整个网站的页面编码要统一,特别是网页与数据库之间


这种情况一般是GB2313和UTF8编码混乱造成的


首先打开数据库查看在数据库中该文件名的字段是否是一致的编码,如果数据库中就是乱码,就要更改数据库编码或者网站文件编码


如果其他页面和数据库没有出现乱码问题,就在此页的页面属性里更换这个页面的编码,或者在进行数据库操作前先对文件名字符串使用convert函数进行转码操作

全部回答

这种情况我经常遇见!

你不要直接去复制原码.要求是在根目录下去复制文件!

知道了吧!你试试.一定行的!

我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
谁能给我《任凭这空虚沸腾》王小立著,TXT电
富豪山荘怎么去啊,有知道地址的么
问下我的电脑里面怎么没有摄像头图表啊
4+十分之七x等于102怎样解
计算机自考二级VB的参考书,要上海卷的~
求一个非主流头像头像
a pplist是什么意思?
赛尔号努力值问题
现在玩什么好?
草鱼怎么钓上鱼快
零售药店员工培训档案表格
从莆田出发去崇武古城自驾游,具体路线怎么走
为什么的我的QQ号形象都显示男的,明明设置是
我的QQ好友分组为什么删除不了也没法该名字
灵台一中北门地址在什么地方,想过去办事
推荐资讯
为什么最新QQ版本不能设置登陆QQ不自动登陆宠
谁给我个旋舞的科技就好没木马和病毒的
数控模具今后有好的发展前途吗?
好日子农家院地址有知道的么?有点事想过去
电脑在运行时,没有关正在运行的程序就关机了
800 600 大准星动态好 还是中准星静态好
DNF PK点不点受身趺蹲
诺基亚N81所有键盘都失灵了,是排线坏了吗?
视频时耳麦好使,但话筒没声音啊
把NOKIA32301:1二维图DWG文件传给我谢谢
父母姓刘。想给孩子起四个字的名字伏天出生属
打篮球脚抽筋怎么办?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?