Rumah > pembangunan bahagian belakang > tutorial php > php和ajax实现异步上传文件或图片代码分享

php和ajax实现异步上传文件或图片代码分享

小云云
Lepaskan: 2023-03-19 22:08:02
asal
1439 orang telah melayarinya

本文主要和大家详细介绍php+ajax实现异步上传文件或图片功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。


1

2

3

4

5

6

7

8

9

//html代码

 

<form enctype="multipart/form-data" id="upForm">

 <input type="file" name="file" ><br><br>

 <input type="button" value="提交">

</form>

<p class="picDis">

 <img src="" alt="">

</p>

Salin selepas log masuk


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

//js代码

 

(&#39;:button&#39;).click(function(event) {

  //formdata储存异步上传数据

 var formData = new FormData($(&#39;form&#39;)[0]);

 formData.append(&#39;file&#39;,$(&#39;:file&#39;)[0].files[0]);

 //坑点: 无论怎么传数据,console.log(formData)都会显示为空,但其实值是存在的,f12查看Net tab可以看到数据被上传了

 $.ajax({

  url:&#39;formtest.php&#39;,

  type: &#39;POST&#39;,

  data: formData,

  //这两个设置项必填

  contentType: false,

  processData: false,

  success:function(data){

  console.log(data)

  var srcPath = data;

  console.log();

     //注意这里的路径要根据自己的储存文件的路径设置

  $(&#39;.picDis img&#39;).attr(&#39;src&#39;, &#39;..&#39;+srcPath);

  }

 })

 });

Salin selepas log masuk

php:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

<?php

 

$upFile = $_FILES[&#39;file&#39;];

 

/**

* 创建文件夹函数,用于创建保存文件的文件夹

* @param str $dirPath 文件夹名称

* @return str $dirPath 文件夹名称

*/

function creaDir($dirPath){

 $curPath = dirname(__FILE__);

 $path = $curPath.&#39;\\&#39;.$dirPath;

 if (is_dir($path) || mkdir($path,0777,true)) {

  return $dirPath;

 }

}

 

//判断文件是否为空或者出错

if ($upFile[&#39;error&#39;]==0 && !empty($upFile)) {

 $dirpath = creaDir(&#39;upload&#39;);

 $filename = $_FILES[&#39;file&#39;][&#39;name&#39;];

 $queryPath = &#39;./&#39;.$dirpath.&#39;/&#39;.$filename;

 //move_uploaded_file将浏览器缓存file转移到服务器文件夹

 if(move_uploaded_file($_FILES[&#39;file&#39;][&#39;tmp_name&#39;],$queryPath)){

  echo $queryPath;

 }

}

 

 ?>

Salin selepas log masuk

点击上传图片并发送后, 可以看到页面上显示出图片, 查看本地文件夹可以看到文件也已储存到服务器.

在客户端实现异步上传的关键在于FormData,关于这部分这里有详细介绍: FormData()

相关推荐:

Ajax表单异步上传文件实例代码详解

利用jQuery异步上传文件的插件用法分享

Html完成异步上传文件的Jquery代码实例


Atas ialah kandungan terperinci php和ajax实现异步上传文件或图片代码分享. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan