① 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实现上传图片到数据库
<?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怎么实现批量上传图片不是一张一张选择之后一起上传 就是打开文件夹全选直接全部上传。
获取路径下的所有图片文件名,写入数据库或是某个变量,在别的页面调用程序上传,再从别的页面读出来就行了。以下是示例代码:<?phpfunction upload($fileName,$filePath){//判断该文件是否是用户根据POST方式提交到服务器的上传文件foreach($_FILES[$fileName]['tmp_name'] as $k=>$v){if($_FILES[$fileName]['name'][$k]!=""){$result=check($_FILES[$fileName]['size'][$k],$_FILES[$fileName]['type'][$k],$_FILES[$fileName]['name'][$k]);if($result['error']==1){echo $result['msg']."<br>";echo "出错文件:".$result['name']."<br>";}else{$arrTT=explode(".",$_FILES[$fileName]['name'][$k]);$extName=$arrTT[count($arrTT)-1];$NewName=sha1(microtime()).".".$extName;if(move_uploaded_file($v,$filePath.$NewName));$arrWW[]=$NewName;}}}return $arrWW;}function check($size,$types,$name){if($size>=5242880){$result['msg']='文件过大!';$result['error']=1;$result['name']=$name;}$arrType=array('image/pjpeg','image/gif','image/x-png','audio/mp3','application/msword','application/vnd.ms_excel','application/octet-stream','application/vnd.ms-powerpoint');if(!in_array($types,$arrType)){$result['msg']='文件类型不匹配!';$result['error']=1;$result['name']=$name;}return $result;}?>
④ php 图片上传
首先 他们是从file空间那里取得的值。 然后判断参数,具体如下:$_files主要用在当需要上传二进制文件的地方,录入上传一个abc.mp3文件,则服务器端需要获得该文件的相关信息,则通过变量$_files来取得。 $_FILES['userfile']['name'] 客户端机器文件的原名称。 $_FILES['userfile']['type'] 文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。 $_FILES['userfile']['size'] 已上传文件的大小,单位为字节。 $_FILES['userfile']['tmp_name'] 文件被上传后在服务端储存的临时文件名。 $_FILES['userfile']['error'] 和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。 注: 在 PHP 4.1.0 版本以前该数组的名称为 $HTTP_POST_FILES,它并不像 $_FILES 一样是自动全局变量。PHP 3 不支持 $HTTP_POST_FILES 数组。 如果表单中没有选择上传的文件,则 PHP 变量 $_FILES['userfile']['size'] 的值将为 0,$_FILES['userfile']['tmp_name'] 将为 none。
⑤ php如何实现文件上传
所谓上传就是把文件从你电脑本地复制到你的项目指定文件夹下。但这有个中间过程,就是复制到系统指定的临时文件夹生成临时文件。然后将临时文件复制到你指定的文件夹下。剩下的就是各种验证了。给你个图片上传方法//上传一张图片 $pic = $_FILES['pic'];function upload($pic){$tmp_name = $pic['tmp_name'];$name = $pic['name'];$type = $pic['type'];$size = $pic['size'];if(!is_uploaded_file($tmp_name)) exit('不是上传文件');//判断是否是图片$mine = array('image/png','image/jpg','image/gif','image/jpeg');if(!in_array($type,$mine)) exit('图片格式不正确');//判断是否有错误码$error = $pic['error'];switch ($error) {case 1:exit("超出上传文件的最大限制");case 2:exit("超出了指定的文件大小");case 3:exit("只有部分文件被上传");case 4:exit("文件没有被上传");case 6:exit("找不到临时文件夹");case 7:exit("文件写入失败");}echo "================<br/>"; echo "上传文件名称是:".$name."<br/>"; echo "上传文件类型是:".$type."<br/>"; echo "上传文件大小是:".$size."<br/>"; echo "上传后系统返回的值是:".$error."<br/>"; echo "上传文件的临时存放路径是:".$tmp_name."<br/>"; echo"开始移动临时文件".'<br>';$des_name = 'up/'.mt_rand().time().'.'.basename($type);$res = move_uploaded_file($tmp_name, $des_name);if($res){echo "================<br/>";echo "上传图片成功".'<br>';}}
⑥ 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表单加上上传的属性,在php那里判断下 $_FILE里面的临时文件是否存在,存在就遍历,然后定义一个数组。把上传到服务器端的临时文件挪到指定位置,然后把路径存到数组里面,最终存到数据库。就实现上传了
⑧ php 实现图片上传如何实现
<?php /****************************************************************************** 参数说明: $max_file_size : 上传文件大小限制, 单位BYTE $destination_folder : 上传文件路径 $watermark : 是否附加水印(1为加水印,其他为不加水印); ******************************************************************************/ //上传文件类型列表 $uptypes=array( 'image/jpg', 'image/jpeg', 'image/png', 'image/gif'); $max_file_size= 2000000;//上传文件大小限制, 单位BYTE $des_folder= "./img/"; //上传文件路径?><html> <head> <title>图片上传程序</title> </head> <body> <form enctype="multipart/form-data" method="post" name="upform"> 上传文件: <input name="upfile" type="file"> <input type="submit" value="上传"><br> 允许上传的文件类型为:<?=implode(', ',$uptypes)?> </form> <?php if ($_SERVER['REQUEST_METHOD'] != 'POST')exit; if (!is_uploaded_file($_FILES["upfile"][tmp_name])) //是否存在文件 { echo "图片不存在!"; exit; } $file = $_FILES["upfile"]; if($max_file_size < $file["size"]) //检查文件大小 { echo "文件太大!"; exit; } if(!in_array($file["type"], $uptypes)) //检查文件类型 { echo "文件类型不符!".$file["type"]; exit; } if(!file_exists($destination_folder)) { mkdir($destination_folder); } $filename=$file["tmp_name"]; $image_size = getimagesize($filename); $pinfo=pathinfo($file["name"]); $ftype=$pinfo['extension']; $destination = $destination_folder.time().".".$ftype; if (file_exists($destination) && $overwrite != true) { echo "同名文件已经存在了"; exit; } if(!move_uploaded_file ($filename, $destination)) { echo "移动文件出错"; exit; } $pinfo=pathinfo($destination); $fname=$pinfo[basename]; echo " <font color=red>已经成功上传</font><br> 文件名: <font color=blue>".$destination_folder.$fname."</font><br>"; echo " 宽度:".$image_size[0]; echo " 长度:".$image_size[1]; echo "<br> 大小:".$file["size"]." bytes"; ?>
⑨ php如何实现将本地图片(可多选)上传到X文件夹中,并在当前页面就能看到所有上传到X文件夹中的图片
这个不仅要php,还要JavaScript配合,上传后能在当前页面看到只能是做个异步上传,然后返回图片的地址显示在页面上,像你说的那种返回所有上传的图片要配合数据库来使用,就是要记录上传的这些图片的地址,然后进入页面的时候查询出来显示,并且在上传图片成功之后要再查询回来显示,这些最好通过ajax异步调用
⑩ 用php如何把一些文件和图片上传到另一指定的服务器
第一种:使用html自带的file控件,然后后台通过php提交到服务器第二种:使用php自带的ftp函数上传到服务器
未经允许不得转载:山九号 » php图片文件上传|怎样用php实现上传图片到数据库