您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP+Ajax

2025/12/7 4:07:28发布27次查看
上传文件:
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。参考代码:
可以同时上传多个文件,用guid进行区分

$(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!!!!!!
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product