$_FILES['文件']['tmp_name'] 删除一些 ASCII 字符


$_FILES['file']['tmp_name'] removing some ascii characters

我看过谷歌和stackoverflow,只是放弃了,因为我找不到我需要的东西。大多数问题都试图从上传的文件中删除 ASCII 字符。但是我有一个上传字段,用户可以在其中上传文件并将其保存到服务器(用于代码/保存)。我上传了一个 15kb 的文件,当它被上传和保存时,它会从文件中删除 ascii 和其他字符,文件最终为 2kb。

我的上传代码:

<form action="./index.php" method="post" enctype="multipart/form-data">
Select image to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">

和文件写入器:

$temp_hash = uniqid();
    move_uploaded_file($_FILES['fileToUpload']['tmp_name'], "./files/" . $temp_hash . $file_extension);    

这些是文件中被删除的一些字符。有没有办法保留文件中的所有数据而不用php自动删除它们?

│▓█[>     

提前致谢:)

使用它而不是move_uploaded_file函数可能会帮助你...

$add="./files/" . $temp_hash . $file_extension;
$tmp_name=$_FILES['fileToUpload']['tmp_name'];
@chmod($add,0777);
@copy($tmp_name, $add);
我相信

php 没有剥离任何东西,但你移动文件太快了。

创建文件时,所有格式的文件都有通用结尾,表示文件上传已完成。写入几个字节的那一刻,文件系统的文件存在,您要求移动它。进行检查可以避免此问题。

if(is_uploaded_file($_FILES['file']['tmp_name'])) { 
                if(copy($_FILES['file']['tmp_name'],$targetDirectory.$name.$extension)) { 
                    echo "Upload Success!";
                }
            }