如何把文件提交给接口上传到服务器(php版)

简介: 如何把文件提交给接口上传到服务器(php版)

1.接口地址:https://www.wlphp.com/myblog_demo/api/uploadfile/index.php          接口在本站服务器,因本站流量有限请勿上传大文件谢谢!


2.html端: index.html


<meta  charset='utf-8'>

<script src="http://apps.bdimg.com/libs/jquery/1.6.4/jquery.js"></script>


<form id= "uploadForm">

       <p>name:<input type="text" name="name" ></p>

       <p>gender:<input type="radio" name="gender" value="1">male <input type="radio" name="gender" value="2">female</p>

       <p>photo:<input type="file" name="photo" id="photo"></p>

 <p><input type="button" link="sub"   value="提交"></p>

</form>


   <div id="result"></div>

<script>

$("[link=sub]").click(function (){   var data = new FormData($('#uploadForm')[0]);

       $.ajax({    url: 'a.php',

           type: 'POST',

           data: data,

           dataType: 'json',

           cache: false,

           processData: false,

           contentType: false

       }).done(function(ret){

           if(ret['isSuccess']){

               var result = '';

               result += 'name=' + ret['name'] + '<br>';

               result += 'gender=' + ret['gender'] + '<br>';

               result += '<img src="' + ret['photo']  + '" width="100">';

               $('#result').html(result);

           }else{

               alert('提交失敗');

           }

       });

       return false;

});



//type=file 一旦change就上传图片

$("[name=photo]").change(function (){var data = new FormData($('#uploadForm')[0]);

       $.ajax({      url: 'a.php',

           type: 'POST',

           data: data,

           dataType: 'json',

           cache: false,

           processData: false,

           contentType: false

       }).done(function(ret){

           if(ret['isSuccess']){

               var result = '';

               result += 'name=' + ret['name'] + '<br>';

               result += 'gender=' + ret['gender'] + '<br>';

               result += '<img src="' + ret['photo']  + '" width="100">';

               $('#result').html(result);

           }else{

               alert('提交失敗');

           }

       });

       return false;

});

</script>


3.html提交给自己的程序a.php (如果用js提给接口会存在跨域问题)


<?php

//文件路径

$file="@".$_FILES['photo']['tmp_name'];

//获取文件扩展名

$file_name_arr=pathinfo($_FILES['photo']['name']);

$file_extension=$file_name_arr['extension'];


$name=$_POST['name'];

$gender=$_POST['gender'];

$ch = curl_init();

$post_data = array(

   'name' => $name,

   'gender' => $gender,

'file' => $file,

'file_extension'=>$file_extension,

);

curl_setopt($ch, CURLOPT_HEADER, false);

//启用时会发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch,CURLOPT_BINARYTRANSFER,true);

curl_setopt($ch, CURLOPT_POSTFIELDS,$post_data);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);      //得到返回值且不显示在页面上

curl_setopt($ch, CURLOPT_URL, 'https://www.wlphp.com/myblog_demo/api/uploadfile/index.php');   //可以理解为接口地址

$info= curl_exec($ch);    //可以理解为接口返回值

curl_close($ch);

//完全输出接口返回值

echo $info;


4.php接口:


<?php

error_reporting(0);

$file_extension=$_POST['file_extension'];

$filename = "./upload/".time().time().".".$file_extension;

if(move_uploaded_file($_FILES['file']['tmp_name'], $filename)){

$response['isSuccess'] = true;

   $response['name'] = $_POST['name'];

   $response['gender'] = $_POST['gender'];

   $response['photo'] = dirname('http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]).$filename;

}else{

   $response['isSuccess'] = false;

}


echo json_encode($response);


5.演示地址:https://www.wlphp.com/myblog_demo/ajaxuploadinterface/index.html            //不支持ie低版本   ie低版本不支持 FormData 对象


相关文章
|
2月前
|
弹性计算 网络安全
阿里云国际OpenAPI多接口快速管理ECS服务器教程
阿里云国际OpenAPI多接口快速管理ECS服务器教程
|
1月前
|
XML 前端开发 JavaScript
PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑
本文深入探讨了PHP与Ajax在Web开发中的交互技术。PHP作为服务器端脚本语言,处理数据和业务逻辑;Ajax则通过异步请求实现页面无刷新更新。文中详细介绍了两者的工作原理、数据传输格式选择、具体实现方法及实际应用案例,如实时数据更新、表单验证与提交、动态加载内容等。同时,针对跨域问题、数据安全与性能优化提出了建议。总结指出,PHP与Ajax的结合能显著提升Web应用的效率和用户体验。
48 3
|
1月前
|
自然语言处理 编译器 应用服务中间件
PHP在服务器上的运行过程
PHP在服务器上的运行过程
47 7
|
1月前
|
监控 PHP Apache
优化 PHP-FPM 参数配置:实现服务器性能提升
优化PHP-FPM的参数配置可以显著提高服务器的性能和稳定性。通过合理设置 `pm.max_children`、`pm.start_servers`、`pm.min_spare_servers`、`pm.max_spare_servers`和 `pm.max_requests`等参数,并结合监控和调优措施,可以有效应对高并发和负载波动,确保Web应用程序的高效运行。希望本文提供的优化建议和配置示例能够帮助您实现服务器性能的提升。
73 3
|
1月前
|
PHP 开发者
PHP作为一门流行的服务器端脚本语言,深入理解PHP的命名空间
【10月更文挑战第22天】PHP作为一门流行的服务器端脚本语言,自1995年诞生以来,已经发展了二十多年。在这二十多年的时间里,PHP经历了多次重大版本的更新,不断增加新特性和改进。其中,命名空间(Namespace)是PHP 5.3.0引入的一个重要特性,它为PHP的代码组织和重用提供了一种新的方式。本文将从三个部分深入理解PHP的命名空间:一是命名空间的基本概念和作用;二是PHP命名空间的使用方法;三是通过实例讲解命名空间的应用。
29 4
|
2月前
|
Java PHP
PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。理解其垃圾回收机制有助于开发高效稳定的PHP应用。
【10月更文挑战第1天】PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。其垃圾回收机制包括引用计数与循环垃圾回收,对提升应用性能和稳定性至关重要。本文通过具体案例分析,详细探讨PHP垃圾回收机制的工作原理,特别是如何解决循环引用问题。在PHP 8中,垃圾回收机制得到进一步优化,提高了效率和准确性。理解这些机制有助于开发高效稳定的PHP应用。
53 3
|
1月前
|
前端开发 关系型数据库 MySQL
PHP与MySQL动态网站开发实战指南####
【10月更文挑战第21天】 本文将深入浅出地探讨如何使用PHP与MySQL构建一个动态网站,从环境搭建到项目部署,全程实战演示。无论你是编程新手还是希望巩固Web开发技能的老手,都能在这篇文章中找到实用的技巧和启发。我们将一起探索如何通过PHP处理用户请求,利用MySQL存储数据,并最终呈现动态内容给用户,打造属于自己的在线平台。 ####
44 0
|
25天前
|
存储 关系型数据库 MySQL
PHP与MySQL动态网站开发:从基础到实践####
本文将深入探讨PHP与MySQL的结合使用,展示如何构建一个动态网站。通过一系列实例和代码片段,我们将逐步了解数据库连接、数据操作、用户输入处理及安全防护等关键技术点。无论您是初学者还是有经验的开发者,都能从中获益匪浅。 ####
|
28天前
|
安全 关系型数据库 MySQL
PHP与MySQL动态网站开发实战指南####
——深入探索LAMP栈下的高效数据交互与处理技巧 ####
|
26天前
|
关系型数据库 MySQL PHP
php实现一个简单的MySQL分页
通过本文的详细步骤和代码示例,我们实现了一个简单的PHP MySQL分页功能。主要步骤包括计算总记录数、设置分页参数、查询当前页的数据以及生成分页链接。这种分页方式适用于大多数Web应用,能够有效提升用户体验和页面响应速度。
26 4