当前位置:首页 » 文件管理 » php上传多张图片

php上传多张图片

发布时间: 2023-11-25 11:09:25

1. php将post过来的$_FILES多张图片同时保存在同一个文件夹

if(!isset($_FILES['userfile'])){
echo "失败";

}else{

//文件夹不存在则创建文件夹(文件夹路径:$dirname)
if (!file_exists($dirname){
mkdir($dirname);
}

$max_files=5; //设置最多上传文件的个数
//遍历图片并存放至文件夹(图片文件集合$src)
for($i=0;$i<$max_files;$i++){
//如果没出错
if($_FILES['userfile']['error'][$i]==0){
//设置完整存放路径+文件名
$file_path=$dirname. "/" .$_FILES['userfile']['name'][$i];
//图片正常读写就存放至文件夹
if (@fopen($src,'r')){
file_put_contents($file_path, $_FILES['userfile']);
}
}

}

}

2. php 如何实现图片上传前预览,并且有多个图片上传和预览

<form name="form4" id="form4" method="post" action="#"> <input type="file" name="file4" id="file4" ōnchange="preview4()" /> <img id="pic4" src="" alt="图片在此显示" width="120"/> </form> <scrīpt type="text/javascrīpt"> function preview4(){ var x = document.getElementById("file4"); var y = document.getElementById("pic4"); if(!x || !x.value || !y) return; var patn = /\.jpg$|\.jpeg$|\.gif$/i; if(patn.test(x.value)){ y.src = "file://localhost/" + x.value; } else{ alert("您选择的似乎不是图像文件。"); } } </scrīpt>

3. input file用了multiple属性,而且选择了多张图片,PHP该怎么上传

其实就那两个函数x0dx0ais_uploaded_file()和move_uploaded_file()x0dx0a是循环上传的。你打印下$_FILES这个超全局数组就明白了。下面我的测试代码上传图片的:x0dx0ax0dx0ax0dx0ax0dx0a x0dx0a无标题x0dx0ax0dx0ax0dx0a

x0dx0ax0dx0ax0dx0ax0dx0ax0dx0ax0dx0a
x0dx0ax0dx0ax0dx0ax0dx0ax0dx0a$v){x0dx0aif(is_uploaded_file($_FILES['images']['tmp_name'][$k])){x0dx0a$save=$path.$_FILES['images']['name'][$k];x0dx0aecho $save."
";x0dx0aif(move_uploaded_file($_FILES['images']['tmp_name'][$k],$save)){x0dx0aecho "上传成功!";x0dx0a}x0dx0a}x0dx0a}x0dx0aecho "
";x0dx0aprint_r($_FILES);x0dx0aecho "
";x0dx0a}x0dx0ax0dx0a?>

4. 怎样用php实现上传图片到数据库

php实现上传图片保存到数据库的方法。具体分析如下:

php 上传图片,一般都使用move_uploaded_file方法保存在服务器上。但如果一个网站有多台服务器,就需要把图片发布到所有的服务器上才能正常使用(使用图片服务器的除外)
如果把图片数据保存到数据库中,多台服务器间可以实现文件共享,节省空间。

首先图片文件是二进制数据,所以需要把二进制数据保存在mysql数据库。
mysql数据库提供了BLOB类型用于存储大量数据,BLOB是一个二进制对象,能容纳不同大小的数据。

BLOB类型有以下四种,除存储的最大信息量不同外,其他都是一样的。可根据需要使用不同的类型。

TinyBlob 最大 255B
Blob 最大 65K
MediumBlob 最大 16M
LongBlob 最大 4G

数据表photo,用于保存图片数据,结构如下:

CREATETABLE`photo`(
`id`int(10)unsignedNOTNULLauto_increment,
`type`varchar(100)NOTNULL,
`binarydata`mediumblobNOTNULL,
PRIMARYKEY(`id`)
)ENGINE=MyISAMDEFAULTCHARSET=latin1AUTO_INCREMENT=1;

upload_image_todb.php代码如下:

<?php
//连接数据库
$conn=@mysql_connect("localhost","root","")ordie(mysql_error());
@mysql_select_db('demo',$conn)ordie(mysql_error());//判断action
$action=isset($_REQUEST['action'])?$_REQUEST['action']:'';
//上传图片
if($action=='add'){
$image=mysql_escape_string(file_get_contents($_FILES['photo']['tmp_name']));
$type=$_FILES['photo']['type'];
$sqlstr="insertintophoto(type,binarydata)values('".$type."','".$image."')";
@mysql_query($sqlstr)ordie(mysql_error());
header('location:upload_image_todb.php');
exit();
//显示图片
}elseif($action=='show'){
$id=isset($_GET['id'])?intval($_GET['id']):0;
$sqlstr="select*fromphotowhereid=$id";
$query=mysql_query($sqlstr)ordie(mysql_error());
$thread=mysql_fetch_assoc($query);
if($thread){
header('content-type:'.$thread['type']);
echo$thread['binarydata'];
exit();
}
}else{
//显示图片列表及上传表单
?>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="content-type"content="text/html;charset=utf-8">
<title>uploadimagetodbdemo</title>
</head>

<body>
<formname="form1"method="post"action="upload_image_todb.php"enctype="multipart/form-data">
<p>图片:<inputtype="file"name="photo"></p>
<p><inputtype="hidden"name="action"value="add"><inputtype="submit"name="b1"value="提交"></p>
</form>

<?php
$sqlstr="select*fromphotoorderbyiddesc";
$query=mysql_query($sqlstr)ordie(mysql_error());
$result=array();
while($thread=mysql_fetch_assoc($query)){
$result[]=$thread;
}
foreach($resultas$val){
echo'<p><img
src="upload_image_todb.php?action=show&id='.$val['id'].'&t='.time().'"
width="150"></p>';
}
?>
</body>
</html>
<?php
}
?>

程序运行截图和数据库截图:

5. PHP后台新闻图片的添加

一般来说,新闻后台管理系统的新闻内容都是用的【富文本编辑器】

在编辑内容的过程中,用ajax方式将图片异步传到服务器上并返回地址,再在文本框中使用html的img把标签把图片显示出来

整个富文本的内容,先将html实体转换成字符串加以储存,整个文章内容在数据库中以字符串形式储存,读出来的时候将字符串转义为html实体,先可以显示出自定义的文本样式了

由于内容是字符串,所以上传一张图片和上传多张图片对于一篇文章来说是无差别的

扩展
富文本编辑器会根据你的操作,用html标签来保存你的排版信息,你看起来是在编辑一段文字,实际上富文本编辑器已经暗地里把格式转换成了html代码

6. thinkPHP3.2.3文件上传类多张图片上传怎么只有第一张图片被上传

可以遍历传过来的FILES数组,然后用循环调用UPLOAD类
public function upload(){
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = 2000000 ;// 设置附件上传大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类
$upload->rootPath = ''./Uploads/';
$upload->savePath = date('Y').'/'.date('m').'/'.date('d').'/';
$upload->subName = array('date', 'H');
$upload->saveName = md5(uniqid());
$info = $upload->upload();
if(!$info) { // 上传错误提示
$this->error($upload->getError());
}else{ // 上传成功
return $info;
//$this->success('上传成功!');
}

}
//调用
foreach($_FILES["banner_index"]["size"] as $key=>$val){
if($val>0){
$info=$this->upload(); //判断上传文件大小大于0,调用upload
foreach($info as $v){
echo $v["savepath"].$v["savename"]; }
}
}

7. thinkphp 多图上传,如何把图片路径保存到数据库

关于上传文件:

推荐使用插件Uploadify!

使用方法:http://www.uploadify.com/documentation/

下载地址:http://www.uploadify.com/download/


关于多图上传:

  1. 在客户端定义一个js变量,用于缓存每次异步上传图片路径;

  2. 最后提交表达数据的时候就把这些路径集合保存到数据库即可!

热点内容
网络访问升级 发布:2025-01-22 09:18:30 浏览:190
樱花动漫盾之勇者成名录缓存 发布:2025-01-22 09:14:11 浏览:564
图色模拟脚本是什么 发布:2025-01-22 09:09:04 浏览:164
怎么重置银行卡密码 发布:2025-01-22 09:07:18 浏览:334
哪个平台云服务器好用 发布:2025-01-22 09:07:16 浏览:476
编程猫审判 发布:2025-01-22 08:54:17 浏览:142
明日之后怎么加不同服务器好友 发布:2025-01-22 08:51:08 浏览:206
php代码格式化 发布:2025-01-22 08:50:22 浏览:180
db2plsql 发布:2025-01-22 08:19:10 浏览:779
猪猪侠脚本没反应 发布:2025-01-22 08:08:37 浏览:812