我想验证图片是否具有带有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:如果需要更多代码或任何内容,请问,我会马上添加它。
答案 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: