Array (">
当前位置:Gxlcms > PHP教程 > PHP+Ajax

PHP+Ajax

时间:2021-07-01 10:21:17 帮助过:5人阅读

                 a.php if (!is_uploaded_file($_FILES["upfile"]["tmp_name"]))       //如果我直间提交表单  $_FILES是有值的  (Array ( [upfile] => Array ( [name] => 1.jpg [type] => image/jpeg [tmp_name] => C:\Windows\phpC106.tmp [error] => 0 [size] => 7108 ) ) )      //但我用ajax提交时,  $_FILES是没有值,这个要怎么解决?    {        echo "图片不存在!";        exit;    }


回复讨论(解决方案)

直接读取 type=file 控件的值是不能上传文件的
ajax 文件上传需使用第三方控件或模拟表单提交

enctype="multipart/form-data" ajax提交的数据格式就不是这样了。

直接读取 type=file 控件的值是不能上传文件的
ajax 文件上传需使用第三方控件或模拟表单提交



能不能发个参考例子给我参考下??

你这样做是行不通的。异步上传文件我知道的有三种方法,第一种HTML5 FILE API方法,可以直接读取文件内容。第二种通过Flash插件来上传,所有工作交由Flash来完成,比如SwfUpload。第三种就是纯JavaScript完成异步上传。下面我们来介绍第三种方法。要借用iframe。参考代码:

  

$(document).on('change','.file_upload_control .file_control',function(){    //第一步获取file值    var file = $(this).val();   //第二步上传前校验    if(!CheckFile(file)){        ClearFileControl($(this)); //清空文件的内容        return;    }     //第三步,如果上传的是图片,在本地进行上传前的预览     PreviewImg($file);     //第四步,提交上传     $(this).parent().submit(); //提交form     //第五步,如果上传的文件比较大(100M),查询进度,记得配置服务器支持大文件,否则上传不会成功!     var file_guid = $(this).siblings('.file_control_guid').val();     //第六步,查询文件上传进度,需要服务端程序进行配合,我这里举例的是PHP代码,需要使用PHP_APC.dll第三方插件协助       完成     setTimeout('GetUploadProgress("'+file_guid+'"),500);});

mark!!!!!!

人气教程排行