繁体   English   中英

PHP文件上传验证和错误显示

[英]php file upload validation and error displaying

我有一个带有输入之一的表格作为文件上传。 我有一个用jquery ajax调用的php脚本,以验证其他表单字段并在表单上方的div中显示错误消息。 它基于与以下脚本非常相似的php echo,使用.html()jquery函数执行此操作。

我还创建了一个php脚本来验证文件上传,如下所示:

<?php

    $errorList = array();
    $inc = 0;


    $allowedExt = array("jpg", "jpeg", "gif", "png");
    $fileExt = end(explode(".", $_FILES['imgUpload']['name']));
    if((($_FILES['imgUpload']['type'] == 'image/gif')
     || ($_FILES['imgUpload']['type'] == 'image/pnjpeg')
     || ($_FILES['imgUpload']['type'] == 'image/jpeg'))
     && ($_FILES['imgUpload']['size'] < 2000000)
     && in_array($fileExt, $allowedExt)){
    if($_FILES['imgUpload']['error'] > 0)){

        $errorList[$inc++] = '<span class="error"> File error:'. $_FILES['imgUpload']['error'].'</span>';
    }

    }
    else{
    $errorList[$inc++] = '<span class="error"> Invalid file </span>';

    }

    echo '<ul class="errorList">';
    for($i =0; $i<$inc; $i++){
        echo $errorList[$i];

    }
    echo '</ul>';


?>

我希望此脚本中的错误消息以与其他脚本类似的方式显示,但就我而言,无法使用ajax完成文件上传。

任何人都对我该如何去做有什么建议?

Ajax无法上传文件。 但是您可以使用IFrame使其看起来像Ajax。

您的选择是:

  • 隐藏的iframe技巧,已由Google推广。 自己实现此功能可能会导致一些麻烦的事情,因此存在诸如jQuery之类的库,这些库具有可自动执行此操作的插件(例如jQuery流行的Form Plugin),因此您在使用它时不必在内部感到肮脏。
  • 使用Flash简化该过程。 最值得注意的是,SWFUpload非常受欢迎。 在所有条件都相同的情况下,我可能会选择Javascript解决方案来解决问题,但过去我一直在成功使用它。 这个解决方案的优点是它带有一个更好的界面,例如加载指示器和缩略图等。 不过,此时您正在要求用户提供Flash + Javascript,在某些情况下可能无法使用。
  • 使用Silverlight代替Flash,尽管我不会真正将其视为可行的解决方案,因为它的渗透率比其他两种解决方案低得多。

在您的帮助下,请参见以下示例

http://www.anyexample.com/programming/php/php_ajax_example__asynchronous_file_upload.xml

它正在使用iframe选项

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM