0

我想验证图像是否具有有效的 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:如果需要更多代码或任何内容,请询问,我会立即添加。

4

2 回答 2

0

不,除非您在 mozilla firefox 中使用 html5 文件 api,否则您不能在 ajax 请求中发送文件。

或者你可以这样做,

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

于 2012-09-03T08:13:23.337 回答
0

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

您最好通过文件扩展名进行检查(请参阅使用 jquery 检查输入文件的正确格式)或在服务器端进行检查,如果格式错误,则从服务器输出错误。

== 编辑 ==

这是一个如何使用 File API 的示例,包括如何使用它检查文件类型,但请记住,这仅适用于有限数量的浏览器

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

于 2012-09-03T08:15:18.840 回答