$ _FILES [' file'] [' tmp_name']删除一些ascii字符

时间:2015-01-12 09:16:40

标签: php html

我已经看过google和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自动删除它们?

│▓█[>     

提前致谢:)

2 个答案:

答案 0 :(得分:0)

使用此代替move_uploaded_file功能可以帮助您......

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

答案 1 :(得分:-1)

我相信php并没有剥离任何东西,但你过早地移动文件了。

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

if(is_uploaded_file($_FILES['file']['tmp_name'])) { 

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