首页 > 开发 > AJAX > 正文

ajax上传多图到php服务器的方法

2024-09-01 08:26:51
字体:
来源:转载
供稿:网友

一般上传图片到服务器有两种方式:

1、把图片转换成二进制直接存储到数据库里

2、把图片存储到本地目录,并将图片地址存储到数据库里

先粗浅地谈下我对这两种存储方法的优劣点的认识:

1、把图片转换成二进制直接存储到数据库的优点是有利于数据的备份和迁移,但缺点就是会影响数据读写速率。一般大图、多图不建议用此方式,一般存储用户头像、富文本内容存储时可以应用此方式。

2、将图片存储到本地目录,在数据库上只存储图片路径的优点是有利于数据的读写,毕竟存一个地址要比存整个图片的大小要小得多。但是缺点就不利于数据的备份和迁移。

先介绍一下存储图片路径的方法:

html代码:

<form id="form1"> <span style="white-space:pre;"> </span><div class="bookImg">     <div class="img-box">       <input type="file" name="photo1" id="" title="文件不超过200kb,大小最佳为60*60">     </div>     <div class="img-box">       <input type="file" name="photo2" id="" title="文件不超过200kb,大小最佳为60*60">     </div>                 </div>   <input type="button" class="bookBtn btnBlue" id="publishBook" value="发布图书" onclick="fsubmit()"/> </form> 

ajax请求:

function fsubmit() {   var form1=document.getElementById("form1");     var fd =new FormData(form1);     $.ajax({        url: "photo.php",        type: "POST",        data: fd,        processData: false,        contentType: false,        success: function(response,status,xhr){         console.log(xhr);         var json=$.parseJSON(response);         var result = '';          result += '<br/><img src="' + json['photo1'] + '" height="100" />';          result += '<br/><img src="' + json['photo2'] + '" height="100" />';          result += '<br/>' + json['photo1'];          result += '<br/>' + json['photo2'];          $('#result').html(result);        }     });     return false; } 

php代码:photo.php

<?php     require('conn.php');     $nameTag = time();     $filename1 = $nameTag . '0' . substr($_FILES['photo1']['name'], strrpos($_FILES['photo1']['name'],'.'));      $filename2 = $nameTag . '1' . substr($_FILES['photo2']['name'], strrpos($_FILES['photo2']['name'],'.'));      $response = array();     $path1 = "img/" . $filename1; <span style="color:#ff0000;">//注意要在目录下新建一个名为img的文件夹用来存放图片     $path2 = "img/" . $filename2;     if(move_uploaded_file($_FILES['photo1']['tmp_name'], $path1) && move_uploaded_file($_FILES['photo2']['tmp_name'], $path2) ){                  $response['isSuccess'] = true;         $response['photo1'] = $path1;        $response['photo2'] = $path2;           }else{        $response['isSuccess'] = false;      }      echo json_encode($response); ?>             
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表