电脑是日文系统的,php实现上传文件时,如果是中文名,就会乱码,使用iconv函数也不行,怎么破

电脑是日文系统的,php实现上传文件时,如果是中文名,就会乱码,使用iconv函数也不行,怎么破,第1张

先确定php文件埋简的编码格式是不是UTF-8的,比如在头部加:header('Content-Type: multipart/form-datacharset=utf-8')

再确认下文件上李斗传时提交的文件名是否也是这个格式的弯扰裤

首先说拿模明HP对于中文的支持没有英文那么好,消咐缓所以,请尽量使用纯英文+数字的上传文件名,可以在服务器端进行上传后改名当你取得文件时,系统会生成一个temp 文件,你简型也可根据时间生成文件名,也可以用temp作文件名了.中文php支持不了,

上传文件是不能包含中文名的,可以生成新的文件名再清举镇上传。

如果想保留原文件名,可以写入数据库,然后输出时做一个专门的脚本,用于读取原文件名并输出。

我答逗以MYSQL举例(输出脚本):

<?php

$file = $_GET['downurl']

$con = mysql_connect("数据库主机名","帐号","密码")

if(!$con)

exit(mysql_errno().":".mysql_error())

$sql = "SELECT * FROM fname WHERE fileurl='$file'"

$result = mysql_query($sql,$con)

$row = mysql_fetch_array($result)

header("Content-Disposition: attachmentfilename='".$row['filename']."'")

echo file_get_contents($file)

?>

有了这个脚本,那么还需要在MYSQL建立一个表fname。

执行以下SQL:

CREATE TABLE 'fname'

(

fileurl varchar(255),

filename varchar(255)

)

最后你在上传文件成功时加一个写入数据的 *** 作:

<?php

$con = mysql_connect("数据库主机名","帐号","密码")

if(!$con)

exit(mysql_errno().":".mysql_error())

$sql = "INSERT INTO fname(fileurl,filename) VALUES('文件URL','原文件名')"

?>

文件URL我就不说了,你一定会弄。原文件名,可以通过$_FILES获取,具体如何获取,我就不写了,百度一下,W3SCHOOL,答粗PHP手册都有。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12284196.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存