在jQuery中设置$ file变量

时间:2012-09-03 08:09:52

标签: php jquery ajax

我想验证图片是否具有带有ajax的有效格式。但我有一个问题,如何在jQuery中设置$ _file变量?

所以我想“翻译”这个PHP代码:

        $Avatar = $_FILES['Avatar']['name'];
        $AvatarTmp = $_FILES['Avatar']['tmp_name'];

到jquery。

这是将要调用的Php脚本(的重要部分)($ .post):

            if(!empty($AvatarTmp))
        {
            $AvatarSize = getimagesize($AvatarTmp);

            if($AvatarSize['mime'] =='image/jpeg')
            {
                $AvatarSrc = imagecreatefromjpeg($AvatarTmp);                       
            }else

            if($AvatarSize['mime'] =='image/png')
            {   
                $AvatarSrc = imagecreatefrompng($AvatarTmp);                        
            }else

            if($AvatarSize['mime'] =='image/gif')
            {                       
                $AvatarSrc = imagecreatefromgif($AvatarTmp);
            }else
            {
                $Errors[] = "Error006";
                $AvatarSrc = false;
            }
        }

PS:如果需要更多代码或任何内容,请问,我会马上添加它。

2 个答案:

答案 0 :(得分:0)

除非你在mozilla firefox中使用html5文件api,否则你无法在ajax请求中发送文件。

或者你可以这样做,

将带有文件输入的表单提交给iframe,并在iframe的负载上使用jquery获取iframe的body元素的内容。并检查服务器的响应。

答案 1 :(得分:0)

不幸的是,jQuery(JavaScript)与PHP完全不同,因此它没有任何类型的File对象。正如@VIPINJAIN所提到的那样,HTML5文件API即将推出,但它还处于起步阶段。

最好通过文件扩展名检查(参见Check input file for correct format with jquery)或检查服务器端,如果格式错误,则从服务器输出错误。

==编辑==

以下是如何使用文件API的示例,包括如何使用它检查文件类型,但请记住,这只适用于limited number of browsers

http://robertnyman.com/2010/12/16/utilizing-the-html5-file-api-to-choose-upload-preview-and-see-progress-for-multiple-files/#highlighter_81142