php上传文件的小程序,文件名是数字和英文的没问题,用中文就无法上传 看 ...
发布网友
发布时间:2022-04-28 14:01
我来回答
共4个回答
热心网友
时间:2022-04-23 18:09
上传文件是不能包含中文名的,可以生成新的文件名再上传。
如果想保留原文件名,可以写入数据库,然后输出时做一个专门的脚本,用于读取原文件名并输出。
我以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: attachment; filename='".$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手册都有。
参考资料:多年web开发经验+3年网页编程技术
热心网友
时间:2022-04-23 19:27
想要用原来的名子只能是把图片相关信息保存到数据库里,在读取上传时直接获取数据库里的路径与原名就可以了。
move_uploaded_file($_FILES['fileField']['tmp_name'],$_FILES['fileField']['name']);
而且你的上传函数参数也写错了,没有指定给上传的临时文件名,我在本地测了下用中文件名是没有问题.
热心网友
时间:2022-04-23 21:02
生成的文件名就不要用原来的中文名称,你可以自己按照规则来一个追问可以生成新的文件名,但是我想显示原来的文件名 ,有什么办法吗?
热心网友
时间:2022-04-23 22:53
那是