我看过谷歌和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!";
}
}