在$_FILES数组中,如何确定error元素的含义?
它输出一个1,这意味着它遇到了一个错误,但是我如何才能找出这是什么错误,特别是我可以处理它呢?
否则我就卡住了,error =1是无用的,因为它没有给我太多关于如何补救这种情况的信息。
(基本上,除了表示存在错误的1值之外,是否还有其他方法可以从错误数组元素中提取更多信息)。如果没有这样的方法来找出错误是什么,还有什么方法可以找出为什么我的文件没有正确上传?
这是我尝试过的:
<?php
if(isset($_FILES['file'])) {
$file = $_FILES['file'];
//File properties
$file_name = $file['name'];
$file_tmp = $file['tmp_name'];
$file_size = $file['size'];
$file_error = $file['error'];
//Work out the file extension
$file_ext = explode('.', $file_name);
$file_ext = strtolower(end($file_ext));
$allowed = array('txt', 'jpg', 'mp3', 'mpeg3', 'mpeg', 'mpeg-3', 'zip');
if(in_array($file_ext, $allowed)){
if($file_error == 0){
if($file_size <= 10000000){
$file_name_new = uniqid('', true) . '.' . $file_ext;
$file_destination = 'uploads/' . $file_name_new;
if(move_uploaded_file($file_tmp, $file_destination)){
echo $file_destination;
}
}
}
else{
echo $file_error;
}
}
}
?>
<!doctype html>
<html>
<body>
<br><br>
Click <a href='./member.php'>here</a> to go back to the member page
<br><br>
<?php
if(isset($_POST['upload'])) {
echo "<pre>";
print_r($_FILES);
echo "</pre>";
}
?>
</body>
</html>这是它为mp3文件输出的内容:1
单击此处返回到成员页面
=> (文件大小阵列( name => soundfile.mp3 type => tmp_name => error => 1 size => 0)
)
发布于 2014-12-31 09:36:58
(1)表示上传的文件超过了上传的最大文件大小。大小是2M,我敢肯定你的mp3文件比这个还要大。
要更改此指令,您有两种选择:
1-从php.ini (如果您不知道它在哪里,可以使用phpinfo()函数),更改upload_max_filesize = 16M,然后重新启动服务器。
2 -From你的htaccess文件:php_value upload_max_filesize 16M
https://stackoverflow.com/questions/27714952
复制相似问题