在本文中,我们将给您介绍关于PHPCURL模拟form表单上传遇到的小坑的详细内容,并且为您解答phpcurl模拟表单提交的相关问题,此外,我们还将为您提供关于ajax提交form表单遇到的问题---
在本文中,我们将给您介绍关于PHP CURL 模拟form表单上传遇到的小坑的详细内容,并且为您解答php curl 模拟表单提交的相关问题,此外,我们还将为您提供关于ajax 提交form表单遇到的问题----1、ajax上传文件 基于jquery form表单上传文件、ajax模拟form表单同步方式下载文件、curl命令模拟表单上传文件的知识。
本文目录一览:- PHP CURL 模拟form表单上传遇到的小坑(php curl 模拟表单提交)
- ajax 提交form表单遇到的问题----1
- ajax上传文件 基于jquery form表单上传文件
- ajax模拟form表单同步方式下载文件
- curl命令模拟表单上传文件
PHP CURL 模拟form表单上传遇到的小坑(php curl 模拟表单提交)
1:引用的时候
$parans ['img']=new \CURLFile($param);
传入的文件 在PHP版本5.5以上记得new CURLFile 不然会上传不成功
/** * http post请求--CURL模拟表单上传文件 * @param $url string 请求地址 * @param $params array 请求参数 * @param $header array 请求头 * @return mixed */ protected function _httpPostImg($url, $params = array() , $header = array()) { $ch = curl_init();//初始化curl curl_setopt($ch, CURLOPT_URL, $url);//抓取指定网页 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);//要求结果为字符串且输出到屏幕上 curl_setopt($ch, CURLOPT_TIMEOUT, 500); curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); $header = array('Content-Type: multipart/form-data'); //请求头记得变化-不同的上传方式 curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //当需要通过curl_getinfo来获取发出请求的header信息时,该选项需要设置为true curl_setopt($ch, CURLINFO_HEADER_OUT, true); $response = curl_exec($ch); //打印请求的header信息 //$request_header = curl_getinfo($ch, CURLINFO_HEADER_OUT); //print_r($ch);exit; curl_close($ch); return $response; }
ajax 提交form表单遇到的问题----1
将开发过程中,把遇到的问题及解决方法进行分享。
问题描述:
ajax提交找不到JS函数对象解决过程:
1、检查发现没有引入jquery.form.js----没有解决
2、在ajaxOptions参数,最后一个删除那个“,”问题改善,可以找到js函数对象了----这说明,该对象内部是数组引用方法,其实很简单的
3、但是有提示type:post未定义,上网查资料发现数据类型如下:----value是字符
key1:‘value1’,
key2:‘value2’,
4、此外,既然ajaxOptions是一个对象,那么可以使用对象引用方法进行元素访问,这个要和JS权威教程里面讲的东西联系起来。
结果:解决
备注:
1、 找不到js函数对象,不一定是“js函数未定义类”错误,也许是别的方面引起的,本例就是该函数内部有语法问题,导致函数不被识别。
ajax上传文件 基于jquery form表单上传文件
<script src="/static/js/jquery.js"></script>
<script> $("#reg-btn").click(function () { // 1. 取到用户填写的数据 var form_data_obj = new FormData(); form_data_obj.append(‘username‘,$(‘#id_username‘).val()); form_data_obj.append(‘password‘,$(‘#id_password‘).val()); form_data_obj.append(‘re_password‘,$(‘#id_re_password‘).val()); form_data_obj.append(‘phone‘,$(‘#id_phone‘).val()); form_data_obj.append(‘email‘,$(‘#id_email‘).val()); form_data_obj.append(‘csrfmiddlewaretoken‘,$("[name= ‘csrfmiddlewaretoken‘]").val()); form_data_obj.append(‘avatar‘,$(‘#avatar‘)[0].files[0]); // 2. 往后端发post请求 $(‘#reg-btn‘).click(function(){ $.ajax({ url:‘/reg/‘,type:‘post‘, data:form_data_obj,processData: false,contentType: false, success:function (response) { console.log(response); {#错误信息为1,则展示错误信息#} if(response.code ===1){$.each(response.msg,function (k,v) { console.log(‘k‘,k); console.log(‘v‘,v); $(‘#id_‘+k).next().text(v[0]).parent().addClass(‘has-error‘) })} else if(response.code ===0){location.href=response.msg} } }) }) }); // 每一个input标签获取焦点的时候,把自己下面的span标签内容清空,把父标签的has-error样式移除 $("input.form-control").focus(function () { $(this).val(‘‘).next("span").text(‘‘).parent().removeClass(‘has-error‘); }); // 前端页面实现头像预览 // 当用户选中文件之后,也就是头像的input标签有值时触发 $(‘#avatar‘).change(function () { var file = this.files[0]; var fr = new FileReader(); fr.readAsDataURL(file); fr.onload = function(){ $(‘#avatar-img‘).attr(‘src‘,fr.result) } })
注意点:
ajax上传文件,借助FormData对象
同时增加两组键值对
processData:false,//tell jQuery not to process the data contentType: false,//tell jQuery not to set contentType
form组件上传文件
<form action="http://localhost:8081/thingsparse/addorupdthingsparse" method="post" enctype="multipart/form-data">
<input type="file" name="file" value="选择jar包"/>
<input id="submit_form" type="submit"value="保存"/>
</form>
注意:每条form表单参数都需要有name属性,以及form表单的enctype="multipart/form-data"。提交按钮type=‘submit’
ajax模拟form表单同步方式下载文件
个人博客:https://suveng.github.io/blog/
ajax模拟form表单同步方式下载文件
// 模拟表单提交同步方式下载文件
// 能够弹出保存文件对话框
function jumpDownload() {
var url = "http://localhost:8080/ajaxDownloadServlet.do";
var fileName = "testAjaxDownload.txt";
var form = $("<form></form>").attr("action", url).attr("method", "post");
form.append($("<input></input>").attr("type", "hidden").attr("name", "fileName").attr("value", fileName));
form.appendTo(''body'').submit().remove();
}
本文同步分享在 博客"suveng"(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
curl命令模拟表单上传文件
关于PHP CURL 模拟form表单上传遇到的小坑和php curl 模拟表单提交的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于ajax 提交form表单遇到的问题----1、ajax上传文件 基于jquery form表单上传文件、ajax模拟form表单同步方式下载文件、curl命令模拟表单上传文件的相关知识,请在本站寻找。
本文标签: