php上传的文件名更改
我需要帮助上传多个文件与php。当我上传一个具有不同字符名的文件时,它会更改文件名,例如,如果上传后它的php上传的文件名更改,php,html,upload,Php,Html,Upload,我需要帮助上传多个文件与php。当我上传一个具有不同字符名的文件时,它会更改文件名,例如,如果上传后它的“Kayıt.doc”更改为“Kayıt.doc”。我不想这样,我能做什么?请帮忙……) 这是html页面 <!doctype html> <html> <body> <form action="cvupload.php" method="post" enctype="multipart/form-data" name="form
“Kayıt.doc”
更改为“Kayıt.doc”
。我不想这样,我能做什么?请帮忙……)
这是html页面
<!doctype html>
<html>
<body>
<form action="cvupload.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
<table width="539" height="75" border="0">
<tr>
<td width="220"><div align="right">Step 2 : </div></td>
<td width="309">Please upload your cv now </td>
</tr>
<tr>
<td><span class="style14">Submit your cv (ms word / zip format)</span></td>
<td><label for="file"></label>
<input type="file" name="file[]" id="file" /></td>
</tr>
<tr>
<td> </td>
<td><label for="Submit"></label>
<input type="submit" name="Submit" value="Submit" id="Submit" /></td>
</tr>
</table>
</form>
</body>
</html>
步骤2:
请现在上传你的简历
提交你的简历(ms word/zip格式)
这是PHP页面
<?php
$toplam = count($_FILES["file"]["name"]);
for ($i = 0; $i < $toplam; $i++)
{
foreach ($_FILES['file']['name'] as $filename)
{
if (((($_FILES["file"]["type"][$i] == "application/msword")||($_FILES["file"]["type"][$i] == "application/zip")))
&& ($_FILES["file"]["size"][$i] > 0))
{
if ($_FILES["file"]["error"][$i] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"][$i] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"][$i] . "<br />";
echo "Type: " . $_FILES["file"]["type"][$i] . "<br />";
echo "Size: " . ($_FILES["file"]["size"][$i] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"][$i] . "<br />";
if (file_exists("upload/" . $_FILES["file"]["name"][$i]))
{
echo $_FILES["file"]["name"][$i] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"][$i],
"upload/" . $_FILES["file"]["name"][$i]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"][$i];
}
}
}
else
{
echo "Invalid file";
}
}
?>
当我只对一个文件使用这样的无括号的
是可以的,但对于多个文件它不起作用。从我阅读的内容来看,您在php中收到的URI是编码的。尝试在有问题的字符串上使用
希望这有帮助。我想这不是你的代码问题。我猜你的电脑不支持某些字符编码
<?php
function utf8_urldecode($str) {
$str = preg_replace("/%u([0-9a-f]{3,4})/i","&#x\\1;",urldecode($str));
return html_entity_decode($str,null,'UTF-8');;
}
谢谢大家的回复,我这样修改了代码,效果很好
move_uploaded_file($_FILES["file"]["tmp_name"][$i], "upload/" . iconv("UTF-8", "ISO-8859-9//TRANSLIT",$_FILES["file"]["name"][$i]));
上载的文件名是否包含重音字符?如果是这样,请使用utf8encode()
或utf8decode()
生成目标文件路径时不应使用原始文件名;考虑只给它一个唯一的ID,而只使用扩展名。