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

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

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

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

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

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

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

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

html代码:

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 += ''%20+%20json%5B'photo1'%5D%20+%20'';

result += ''%20+%20json%5B'photo2'%5D%20+%20'';

result += '
' + json['photo1'];

result += '
' + json['photo2'];

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

}

});

return false;

}

php代码:photo.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; //注意要在目录下新建一个名为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);

?>

数据库表我就不贴了,存图片地址,字段类型直接用字符型就可以了。

现在在介绍一下把图片转换成二进制直接存进数据库的方法:

这里我没有用ajax请求,直接用表单的post 请求提交数据

html代码:

上传头像

php代码:photo.php

require('conn.php');

$image = mysql_real_escape_string(file_get_contents($_FILES['photo']['tmp_name']));

$sqlstr = "insert into user(photo) values('".$image."')";

@mysql_query($sqlstr) or die(mysql_error());

exit();

?>

这样就把图片转换成二进制并储存进数据库了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。 ad51e517755f8fd6a7ec83ced4ecfaf3.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值