PHP-文件上传吐出错误
我在做一个简单的文件上传练习,我从我的WebDev类中得到了这个练习——我们实际上只需要复制代码并将其集成以满足我们的需要。 我试着为我的项目这样做,不幸的是,它会继续重复同样的错误PHP-文件上传吐出错误,php,file,file-upload,upload,Php,File,File Upload,Upload,我在做一个简单的文件上传练习,我从我的WebDev类中得到了这个练习——我们实际上只需要复制代码并将其集成以满足我们的需要。 我试着为我的项目这样做,不幸的是,它会继续重复同样的错误 <?php $allowed_filetypes = array('.jpg','.gif','.bmp','.png', '.jpeg'); $max_filesize = 524288; $upload_path = 'uploads/'; $filename = $_FILES['userfi
<?php
$allowed_filetypes = array('.jpg','.gif','.bmp','.png', '.jpeg');
$max_filesize = 524288;
$upload_path = 'uploads/';
$filename = $_FILES['userfile']['name'];
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);
var_export($_FILES, $ext);
if(!in_array($ext,$allowed_filetypes))
die('The file you attempted to upload is not allowed.');
if(filesize($_FILES['usrfile']['tmp_name']) > $max_filesize)
die('The file you attempted to upload is too large.');
if(!is_writable($upload_path))
die('You cannot upload to the specified directory, please CHMOD it to 777.');
if(move_uploaded_file($_FILES['usrfile']['tmp_name'],$upload_path . $filename))
echo 'Your file upload was successful, view the file <a href="' . $upload_path . $filename . '" title="Your File">here</a>';
else
echo 'There was an error during the file upload. Please try again.';
?>
它不断给我“错误的文件类型”错误,数组中定义了所有类型
<form id='upload' action="uploadfile.php" method="POST" enctype="multipart/form-data">
<table>
<tr>
<td >Choose a File to Upload</td>
</tr>
<tr>
<td >Select File</td>
<td ><input type="file" name="userfile"></td>
</tr>
<tr>
<td colspan=2 id="sub"><input type="submit" name="submit" value="submit" ></td>
</tr>
</Table>
</form>
选择要上载的文件
选择文件
索引“tmp\u name”包含一个临时文件名,而不是该文件真正拥有的名称。它存储在'name'
中。有关信息,请参阅
此外,您应该:
'error'
索引中的错误$filename=$_文件['usrfile']['name'] 您可以使用它,因为首先必须始终回显$\u文件数组,然后开始调试。 将此行从
$allowed_filetypes = array('.jpg','.gif','.bmp','.png', '.jpeg');
到
更改下面的行
if(filesize($_FILES['usrfile']['tmp_name']) > $max_filesize)
到
然后拆下线路
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);
换一条线
if(!in_array($ext,$allowed_filetypes))
到
首先对文件类型进行回显。遗憾的是,将其更改为“名称”没有帮助,仍然会显示文件不允许的错误==>如果您应该
var\u导出($\u FILES,$ext),请首先查看回显
就在第一个if之前,并在你的问题中发布它(以及你现在使用的更新代码)。@Quantaqa:var_export
是一个调试工具,而不是一个神奇的修复程序-我的想法是看看它为你打印了什么值。您可以将它输出的内容发布到页面吗?很抱歉,我不熟悉var_export()==>Output:array(),您尝试上载的文件是不允许的。如果它生成空数组,则表示您的$\u文件是空的。您提交的HTML表单是什么样子的?它是否具有enctype=“multipart/form data”
属性?
$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1);
if(!in_array($ext,$allowed_filetypes))
if(!in_array($_FILES['usrfile']['type'],$allowed_filetypes))