如何在服务器端修复通知和检查文件


how to fix notice and check file on server side?

我在这里有一个应用程序

我有两个问题:

问题1:如何修改通知?

以下是代码:

<?php
If(isset($_POST)) 
{ 
$allowedImageTypes = array("image/pjpeg","image/jpeg","image/jpg","image/png","image/x-png","image/gif");
$file = $_FILES['imageFile'];  // this is the line the notice is pointing to
$fileType = $file['type'];
if (!in_array($fileType, $allowedImageTypes)) { 
    echo "Unsupported file type";
}
else
{
    // Process the file
}
}
?>

问题2:如果打开应用程序,请单击"添加问题"按钮。这将添加一个表行。现在在文件输入中选择一个无效的文件(例如.txt文件)。现在单击"提交详细信息"按钮,它将在警报中为问题1声明"不支持的文件类型"。现在返回文件输入并将文件更改为有效格式(.png、.jpg、.jpeg或.gif),然后在完成此操作后再次单击"提交详细信息"按钮,此时会出现一个确认框,说明一条消息以及是否要继续。

现在,这一切在客户端都很好,但我想要的是,当用户单击"提交详细信息"按钮时,为了安全起见,我希望它检查服务器端和客户端的文件格式是否正确。如果它是有效的,则不显示消息,如果无效,则在顶部显示消息"不支持的文件类型"。如果文件输入为空,则它是有效的,但如果一个文件输入包含错误的文件格式,则显示无效消息。有人知道怎么做吗?php代码离实现这一点还差得远吗?

如果您希望

,您可以在视图源代码中查看完整代码

将if(isset($_POST))更改为if(count($_POST)>0)如果您检查(isset($_FILES["imageFile"])

正在处理问题2

在传统的HTML中不可能在客户端进行检查。您可能会看到像plupload或swfupload这样带有jquery连接器的解决方案,这些连接器是面向flash和HTML5的上传解决方案