1. 程式人生 > >PHP問題 - 上傳檔名中文亂碼

PHP問題 - 上傳檔名中文亂碼

 

iconv()按要求的字元編碼轉換字串

string iconv ( string $in_charset , string $out_charset , string $str )

in_charset

輸入的字符集。

out_charset

輸出的字符集。

str

要轉換的字串。

(啥時候有閒心加個預覽吧~)

65行:“move_uploaded_file($_FILES['file']['tmp_name'],iconv("UTF-8", "gb2312", $path."/".$_FILES['file']['name']));”

upload.php

<html>
<head>
    <meta charset="UTF-8"/>
    <style>
        body{
            background-size:100%;
            display: block;
            text-align: -webkit-center;
            margin: 0;
            padding: 0;
        }
        input{
            border-bottom: 1px solid #1883ba;
            border-right-width: 0;
            border-top-width: 0;
            border-left-width: 0;
            text-align: center;
        }
    </style>
    <title>檔案圖片</title>
</head>
<body>
<form method="post" action="upload.php" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="1000000"/><br/>
    選擇圖片:<input type="file" name="file"/><br/>
    <input type="submit" value="提交" name="submit"/><br/>
</form>
<a href="index.php">返回首頁</a>
</body>
</html>



<?php
if(isset($_POST['submit'])&&$_POST['submit'])
{
    $allow_type=array("image/gif","image/jpg","image/png","image/jpeg","image/pjpeg");//對於 IE,識別 jpg 檔案的型別必須是 pjpeg,對於 FireFox,必須是 jpeg
    $size=1000000;
    $path="./image";

    if(!is_dir($path))
    {
        mkdir($path);
    }
    if($_FILES['file']['size']>$size)
    {
        die("檔案超過".($size/1024)."kb");
    }
    if(!in_array($_FILES['file']['type'],$allow_type))
    {
        die("檔案型別不支援");
    }
    if ($_FILES["file"]["error"] > 0)
    {
        die("錯誤: " . $_FILES["file"]["error"] . "<br/>");
    }
    if(file_exists($path."/".$_FILES['file']['name']))
    {
        die( $_FILES['file']['name']."已存在");
    }
    if(!is_uploaded_file($_FILES['file']['tmp_name']))
    {
        die("非上傳檔案");
    }
    if(move_uploaded_file($_FILES['file']['tmp_name'],iconv("UTF-8", "gb2312", $path."/".$_FILES['file']['name'])))
        echo "檔案上傳成功<br/>".$_FILES['file']['name']."上傳成功!大小為".intval($_FILES['file']['size']/1024)."kb";
    else echo"檔案上傳失敗";
}
?>

 

 

 

echo "好多刪不掉的空行啊";