我已经看过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自动删除它们?
│▓█[>
提前致谢:)
答案 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!";
}
}