⑴ 用php写一个上传图片的程序 谢谢
PHP上传图片示例:
//upload.html
<html><head><metacharset="utf-8"><title>PHP文件上传示例</title></head><body><formaction="deal_upload.php"method="post"enctype="multipart/form-data">文件:<inputid="upfile"name="upfile"type="file"><br><inputtype="submit"name="submit"value="提交"></form></body></html>
//deal_upload.php
<?phpheader("Content-type:text/html;charset=utf-8;");//获取上传文件信息[email protected]$_FILES['upfile'];if(!$files){exit("上传发生异常!");}//定义允许上传图片格式$allowtype=array("jpg","jpeg","png","bmp");//定义允许上传图片大小(单位:kb)$allow_size=1024000;//定义图片上传保存路径$upload_dir="uploadPic";$upArr=explode(".",$files["name"]);//获取上传图片格式$up_type=end($upArr);//验证上传图片格式是否合法(包括图片大小,格式)if($files["error"]>0){exit("图片上传失败,error:".$files["error"]);}elseif($files["size"]>$allow_size){exit("图片超出允许上传大小!");}elseif(!in_array($up_type,$allowtype)){exit("非法图片格式,请检查图片格式是否为:jpg,jpeg,png!");}elseif(is_uploaded_file($files['tmp_name'])){//判断是否通过表单上传//重命名图片名称$file_name=time().".".$up_type;//图片保存路径$file_path=$upload_dir."/".$file_name;//移动并上传图片if(move_uploaded_file($files["tmp_name"],$file_path)){exit("上传成功!");}else{exit("上传失败!");}}else{exit("非法途径上传!");}
//运行结果:
⑵ php如何实现上传图片文件,并替换
首先建立两个文件: change.html 和 change.phpchange.html 文件的表单代码如下:<html><head><title>change file example.</title><meta charset="UTF-8"></head><body><form method="post" action="changefile.php" enctype="multipart/form-data"><table border=0 cellspacing=0 cellpadding=0 align=center width="100%"><tr><td width=55 height=20 align="center"><input type="hidden" name="MAX_FILE_SIZE" value="2000000" />文件:</td><td><input name="file" type="file" /><input type="submit" name="submit" value="submit" /> </td></tr></table></form></body></html>这里有几个要注意的地方,首先看这句<form method="post" action="change.php" enctype="multipart/form-data">,这里我们采用POST方法,个别浏览器还支持PUT方法,当然这需要对脚本进行修改,我并不建议这么做。表单中必须设置enctype="multipart/form-data,这样,服务器就知道上传文件带有常规表单信息,记住,这个是必须设置的。此外还需要一个隐藏域来限制上传文件的最大长度:<input type="hidden" name="MAX_FILE_SIZE" value="2000000">,这里name必须设置成MAX_FILE_SIZE,其值就是上传文件的最大长度,单位是B,这里我限制成2M。再看这句:<input name="file" type="file" value="浏览" >,type="file"说明了文件类型,这样一个基本的上传文件接口就完成了,接下来讲讲如何用PHP来处理上传的文件,此外你的php.ini中设置的上传文件最大长度可能会影响到你的实际上传,请根据实际情况修改,另PHP的上传是先传到临时目录,在移至指定目录的,了;临时目录的可根据需要修改,也可使用默认值……以下为表单提交change.php文件代码,来看看这个文件都有什么:<?phpheader("content-type:text/html;charset=utf-8");/*** @param string $oldfile 需要更换的文件名(包含具体路径名)*/function changeFile($oldfile){$newfile = $_FILES['file']['name'];//获取上传文件名$fileclass = substr(strrchr($newfile, '.'), 1);//获取上传文件扩展名,做判断用$type = array("jpg", "gif", "bmp", "jpeg", "png");//设置允许上传文件的类型if(in_array(strtolower($fileclass), $type)){if(file_exists($oldfile)){unlink($oldfile);}if(is_uploaded_file($_FILES['file']['tmp_name'])){//必须通过 PHP 的 HTTP POST 上传机制所上传的 if(move_uploaded_file($_FILES['file']['tmp_name'], $oldfile)){ //输出图片预览echo "<center>您的文件已经上传完毕 上传图片预览: </center><br><center><img src='$oldfile'></center>";}}else{echo "<center>上传失败,文件大于2M,请重新上传!</center>";}}else{$text = implode(",", $type);echo "<center>您只能上传以下类型文件:", $text, "</center><br>";// echo "<script>alert('您只能上传以下类型文件:$text')</script>";}}changeFile("./files/1.png");刚看这些你可能有点晕~~,慢慢看,你就会发现其实这玩意SO EASY!!先讲下原理,该程序以上传图片为例,先判断文件类型是否为图片格式,若是则上传文件,接着上传文件到并替换指定文件,成功上传则输出上传的图片预览。这里要对程序中一些函数作些解释。先看substr(strrchr($newfile, '.'), 1), strrchar()函数有什么作用呢,我举个例子大家就知道,比如一个图片文件 pic.jpg,我们用 strrchar()处理,strrchr(pic.jpg,'.'),它将返回.jpg,明白了吗?该函数返回指定字符在该字符串最后出现的位置后的字符串。配合 substr() 我们就可以取到jpg,这样我们就得到了文件的后缀名,来判断上传文件是否符合指定格式。本程序把指定的格式放在一个数组中,实际使用时可根据需要添加。接着,我们调用判断文件类型的函数,并将其转化为小写strtolower($_FILES['file']['name']),这里有个很关键的东东$_FILES ,这是个超级全局数组,保存了需要处理的表单数据,如果开启了register_globals,也可以直接访问,但这是不安全的。看刚才那个上传接口<input name="file" type="file">,根据这个表单名称,我们可以得到很多信息:$_FILES['file']['name']– 得到文件名称$_FILES['file']['tmp_name']–得到临时存储位置$_FILES['file']['size']–得到文件大小$_FILES['file']['type']–得到文件MIME类型得到这些信息,就可以轻松判断文件的信息了,是不是很方便?^_^,接下来还有一些函数需要了解,file_exists()–判断指定目录是否存在,不存在我们当然不能上传(好像是废话!),is_uploaded_file–判断文件是否已经通过HTTP POST上传,move_uploaded_file–将上传文件移至指定目录。成功上传,我们就输出预览,否则输出上传失败……
⑶ php如何实现将本地图片(可多选)上传到X文件夹中,并在当前页面就能看到所有上传到X文件夹中的图片
这个不仅要php,还要javaScript配合,上传后能在当前页面看到只能是做个异步上传,然后返回图片的地址显示在页面上,像你说的那种返回所有上传的图片要配合数据库来使用,就是要记录上传的这些图片的地址,然后进入页面的时候查询出来显示,并且在上传图片成功之后要再查询回来显示,这些最好通过ajax异步调用
⑷ 用php上传图片怎么做
上传图片原理:首先判断文件类型是否为图片格式,若是则上传文件,然后重命名文件(一般都是避免上传文件重名,现在基本上都是以为时间来命名),接着把文件上传到指定目录,成功上传后输出上传图片的预览。1.首先我们开始判断文件类型是否为图片类型用到的函数{ strrchr:查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符。 substr: 取部份字符串。 $HTTP_POST_FILES['file']['name']:获取当前上传的文件全称。 } 图片类型就是“.”后面的字符(比如:一个文件名称为XXX.JPG 那么它的类型就是“.”后面的JPG)。 我们可以用PHP中的函数来截取上传者文件名字的。我们来写个获取文件类型的函数<? function type() { return substr(strrchr($HTTP_POST_FILES['file']['name'],'.'),1); } ?> 2.若是则上传文件,然后重命名文件用到的函数{ strtolower:把字符串的字母全部转换为小写字母. in_array: 函数在数组中搜索给定的值。 implode:函数把数组元素组合为一个字符串 random:随机生成的数 $_FILES['userfile']['name']:上传文件名称 $uploaddir:自己定义的变量。比如在同一个文件夹里面,你想把上传的文件放到这个文件夹的FILE文件夹下,你可以这样定义$uploaddir="./file/";注意写法 } 这边会出现很多问题,第一先写一个能上传类型的数组。第二判断文件合法性。第三给文件重名。*(这边判断文件大小就不写了)先定义允许上传文件的类型数组:$type=array("jpg","gif","bmp","jpeg","png");第二用一个IF。。else。。写一个判断文件合法性的控制流语句。if(!in_arry(strtolower(type()),$type))//如果不存在能上传的类型 { $text=implode('.',$type); echo "您只能上传以下类型文件: ",$text,"<br>"; } 下面就是给他们重新命名了,else { $filename=explode(".",$_FILES['userfile']['name']);//把上传的文件名以“.”好为准做一个数组。 $time=date("m-d-H-i-s");//去当前上传的时间 $filename[0]=$time;//取文件名t替换 name=implode(".",$filename); //上传后的文件名 $uploadfile=$uploaddir.$name;//上传后的文件名地址 } 3.最后把文件上传到指定目录,成功上传后输出上传图片的预览用到的函数{ move_uploaded_file:执行上传文件 } if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile)) { echo "<center>您的文件已经上传完毕 上传图片预览: </center><br><center><img src='$uploadfile'></center>"; echo"<br><center><a href='javascrīpt:history.go(-1)'>继续上传</a></center>"; } else { echo"传输失败!"; }
⑸ php上传图片文件常用的几个方法
你好,要先建立一个html代码
<formaction="upload_file.php"method="post"enctype="multipart/form-data"><labelfor="file">Filename:</label><inputtype="file"name="file"id="file"/><br/><inputtype="submit"name="submit"value="Submit"/></form>
然后创建upload_file文件用$_FILE判断文件,下面是判断文件的具体信息
$_FILES["file"]["name"] – 被上传文件的名称
$_FILES["file"]["type"] – 被上传文件的类型
$_FILES["file"]["size"] – 被上传文件的大小,以字节计
$_FILES["file"]["tmp_name"] – 存储在服务器的文件的临时副本的名称
$_FILES["file"]["error"] – 由文件上传导致的错误代
希望对你有帮助!
⑹ php 异步上传图片几种方法总结
代码如下 form action="upload.php" id="form1" name="form1" enctype="multipart/form-data" method="post" target="uploadIframe"> <!–上传图片页面 –> </form> <iframe name="uploadIframe" id="uploadIframe" style="display:none"></iframe> 然后后台处理完上传图片逻辑后返回给前台,利用ajax修改当前页面DOM对象实现无刷新上传图片的友好功能。实例 代码如下 a.html <form enctype="multipart/form-data" action="a.php" target="ifram_sign" method="POST"> <input name="submit" id="submit" value="" type="hidden"> <label>上传文件: <input name="test_file" type="file" id="test_file" size="48"></label> <input type="image" value="立即上传" id="submit_btn"> </form><iframe name="ifram_sign" src="" frameborder="0" height="0" width="0" marginheight="0" marginwidth="0"></iframe> php代码: 代码如下 <?phpif ($_files["test_file"]["error"] > 0) { echo "Error: " . $_files["test_file"]["error"] . "<br />"; }else {//这里的判断图片属性的方法就不写了。自己扩展一下。 $filetype=strrchr($_files["test_file"]["name"],"."); $filetype=substr($filetype,1,strlen($filetype)); $filename="img/".time("YmdHis").".".$filetype; move_uploaded_file($_files["test_file"]["tmp_name"],$filename); echo '<script >alert(1)</script>'; $return="parent.document.getElementByIdx_x('mpic".$pageset_id."').innerhtml='".$dataimgpath."'"; echo "<script >alert('上传成功')</script>"; echo "<script>{$return}</script>"; }?> 其实jquery ajax图片异步上传html:<!DOCTYPE html PUBLIC "-//W3C//dtd Xhtml 1.0 transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US"><head> <title>图片异步上传</title></head><script type="text/javascript" src="js/jquery.js"></script><script type="text/javascript" src="js/index.js"></script><link type="text/css" rel="stylesheet" href="css/index.css"><body> <div class="frm"> <form name="uploadFrom" id="uploadFrom" action="upload.php" method="post" target="tarframe" enctype="multipart/form-data"> <input type="file" id="upload_file" name="upfile"> </form> <iframe src="" width="0" height="0" style="display:none;" name="tarframe"></iframe> </div> <div id="msg"> </div></body></html>index.js$(function(){ $("#upload_file").change(function(){ $("#uploadFrom").submit(); });}); function stopSend(str){ var im="<img src='upload/images/"+str+"'>"; $("#msg").append(im);} upload.php<?php $file=$_files['upfile']; $name=rand(0,500000).dechex(rand(0,10000)).".jpg"; move_uploaded_file($file['tmp_name'],"upload/images/".$name);//调用iframe父窗口的js 函数 echo "<script>parent.stopSend('$name')</script>";?> 异步上传图片几种方法
⑺ php文件上传,如何实现独立的图片服务器的,该move_uploaded_file()函数能实现吗
可以的。图片也是文件的一种形式,主要上传的时候注意限制文件的后缀为.jpg,.png等等,并使用move_uploaded_file把图片转移到服务器中一个特定的文件夹中。为了方便集中管理这些图片,可以建立一个数据库,用一个数据表记录该图片的路径、名称、上传日期、格式等等信息。访问图像的时候,就可以根据图片的路径获得了。
⑻ php上传图片代码
等下,只是上传?那么简单,不用写到数据库么? 给个反映啊,不然我怎么帮你写。….. 好啦号啦,我写了:<title>图片上传</title></head><body><form action="" method="post" enctype="multipart/form-data" name="form1" id="form1"> 图片上传: <label> <input type="file" name="file" id="file" /> </label> <label> <input type="submit" name="button" id="button" value="上传" /> </label></form><?phpif(isset($_POST['button']))//检测按下了上传按钮{$file=$_FILES['file']['tmp_name'];//$_FILES是二维数组,file是文件;名,tmp_name是固定的,是上传到系统的位置$name=date("Ymdgid").'.jpg';//上传以后,文件的新名字,用时间来做名字$=($file,"photo/$name");//函数,是把文件拷贝到站点下的photo文件夹中if($)//如果拷贝成功echo '上传成功';elseecho '上传失败';}?></body></html>
⑼ PHP 如何上传图片和文字
直接form表单加上上传的属性,在php那里判断下 $_FILE里面的临时文件是否存在,存在就遍历,然后定义一个数组。把上传到服务器端的临时文件挪到指定位置,然后把路径存到数组里面,最终存到数据库。就实现上传了
⑽ 怎样用php实现上传图片到数据库
<?php@session_start();require_once("./conf/config.php");$file_type = $_FILES["pic"]["type"];$file_name = $_FILES["pic"]["name"];if ((($file_type == "image/gif")|| ($file_type == "image/jpeg")|| ($file_type == "image/pjpeg"))&& ($_FILES["pic"]["size"] < 1000000)) { if(!is_dir("upload/". date("md") . "/")){mkdir("upload/". date("md") . "/");} if (file_exists("upload/" . date("md") . "/" . $file_name)) { echo "图片 " . $file_name . " 文件名已存在,请更换文件名再进行上传. "; } else { $url = "upload/" . date("md") . "/" .$file_name; move_uploaded_file($_FILES["pic"]["tmp_name"], "upload/" . date("md") . "/" . $file_name); } }else { echo "图片文件不可用"; } $userId = $_SESSION["userId"];if($url){$sql = "insert into photos(url, userId) values('$url', '$userId')";$query = mysql_query($sql);if($query){die('<script>alert("图片上传成功");window.location="/photolist.htm";</script>');}}?>
未经允许不得转载:山九号 » php文件上传图片|用php写一个上传图片的程序 谢谢