本文目录一览:
- 1、php 文件上传怎样设置文件的类型为所有类型(jpg,doc,rar,等所有文件类型)
- 2、怎么用php实现文件的上传,要求文件类型为jpg,大小不超过2m,上传的文件存放在u?
- 3、在PHP中怎么实现文件的分类上传?
- 4、php上传文件代码,能用的代码
- 5、php 上传文件
php 文件上传怎样设置文件的类型为所有类型(jpg,doc,rar,等所有文件类型)
一般PHP文件上传时应自行设置检查文件类型的,如果你不检查就能上传所有的文件类型了。
怎么用php实现文件的上传,要求文件类型为jpg,大小不超过2m,上传的文件存放在u?
$_FILES官方文档
你可以看看官方的$_FILES文档,里面有对$_FILES的内容的解释。
想通过PHP来处理文件信息就得通过$_FILES的内容来处理,比如文件类型可以用type来判断,要求文件类型为jpg,那就判断if ($_FILES['file1']['type'] === 'image/jpeg'),这里的file1并不是绝对的,视情况而定。
当然如果你觉得判断类型太麻烦,你也可以直接从name中判断后缀名,自己将文件名分割一下就好了。大小可以用size,默认单位是字节,不超过2M就要除以1024*1024了,可以将字节转换到兆字节。
要将上传的文件放在U目录下,就用move_uploaded_file函数来解决,move_uploaded_file官方文档
在PHP中怎么实现文件的分类上传?
先判断上传文件的类型,不同的类型写在不同的文件夹
?
if(isset($_POST['send']) $_POST['send']=='true'){
print_r($_FILES);
$type = $_FILES['file']['type'];
switch($type){
case 'image/jpeg':
$dfolder = 'jpg';
break;
case 'application/pdf';
$dfolder = 'pdf';
break;
case 'text/plain';
$dfolder = 'txt';
break;
}
mkdir($dfolder,0777);
if(move_uploaded_file($_FILES['file']['tmp_name'],$dfolder.'/'.$_FILES['file']['name'])){
echo 'upload success';
}
}else{
?
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ""
html
head
title New Document /title
meta name="Generator" content="EditPlus"
meta name="Author" content=""
meta name="Keywords" content=""
meta name="Description" content=""
/head
body
form name="form1" method="post" enctype="multipart/form-data"
input type="file" name="file"
input type="hidden" name="send" value="true"
input type="submit" value="submit"
/form
/body
/html
? } ?
php上传文件代码,能用的代码
?php
$uptypes=array('image/jpg', //上传文件类型列表
'image/jpeg',
'image/png',
'image/pjpeg',
'image/gif',
'image/bmp',
'image/x-png');
$max_file_size=5000000; //上传文件大小限制, 单位BYTE
$destination_folder="upload/"; //上传文件路径
$watermark=1; //是否附加水印(1为加水印,其他为不加水印);
$watertype=1; //水印类型(1为文字,2为图片)
$waterposition=1; //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);
$waterstring="newphp.site.cz"; //水印字符串
$waterimg="xplore.gif"; //水印图片
$imgpreview=1; //是否生成预览图(1为生成,其他为不生成);
$imgpreviewsize=1/2; //缩略图比例
?
html
head
titleM4U BLOG - fywyj.cn/title
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
style type="text/css"body,td{font-family:tahoma,verdana,arial;font-size:11px;line-height:15px;background-color:white;color:#666666;margin-left:20px;}
strong{font-size:12px;}
aink{color:#0066CC;}
a:hover{color:#FF6600;}
aisited{color:#003366;}
a:active{color:#9DCC00;}
table.itable{}
td.irows{height:20px;background:url("index.php?i=dots" repeat-x bottom}/style
/head
body
centerform enctype="multipart/form-data" method="post" name="upform"
上传文件: brbrbr
input name="upfile" type="file" style="width:200;border:1 solid #9a9999; font-size:9pt; background-color:#ffffff" size="17"
input type="submit" value="上传" style="width:30;border:1 solid #9a9999; font-size:9pt; background-color:#ffffff" size="17"brbrbr
允许上传的文件类型为:jpg|jpeg|png|pjpeg|gif|bmp|x-png|swf brbr
a href="index.php"返回/a
/form
?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (!is_uploaded_file($_FILES["upfile"][tmp_name]))
//是否存在文件
{
echo "font color='red'文件不存在!/font";
exit;
}
$file = $_FILES["upfile"];
if($max_file_size $file["size"])
//检查文件大小
{
echo "font color='red'文件太大!/font";
exit;
}
if(!in_array($file["type"], $uptypes))
//检查文件类型
{
echo "font color='red'只能上传图像文件或Flash!/font";
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 "font color='red'同名文件已经存在了!/a";
exit;
}
if(!move_uploaded_file ($filename, $destination))
{
echo "font color='red'移动文件出错!/a";
exit;
}
$pinfo=pathinfo($destination);
$fname=$pinfo[basename];
echo " font color=red已经成功上传/fontbr文件名: font color=blue".$destination_folder.$fname."/fontbr";
echo " 宽度:".$image_size[0];
echo " 长度:".$image_size[1];
if($watermark==1)
{
$iinfo=getimagesize($destination,$iinfo);
$nimage=imagecreatetruecolor($image_size[0],$image_size[1]);
$white=imagecolorallocate($nimage,255,255,255);
$black=imagecolorallocate($nimage,0,0,0);
$red=imagecolorallocate($nimage,255,0,0);
imagefill($nimage,0,0,$white);
switch ($iinfo[2])
{
case 1:
$simage =imagecreatefromgif($destination);
break;
case 2:
$simage =imagecreatefromjpeg($destination);
break;
case 3:
$simage =imagecreatefrompng($destination);
break;
case 6:
$simage =imagecreatefromwbmp($destination);
break;
default:
die("font color='red'不能上传此类型文件!/a");
exit;
}
imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);
imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white);
switch($watertype)
{
case 1: //加水印字符串
imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);
break;
case 2: //加水印图片
$simage1 =imagecreatefromgif("xplore.gif");
imagecopy($nimage,$simage1,0,0,0,0,85,15);
imagedestroy($simage1);
break;
}
switch ($iinfo[2])
{
case 1:
//imagegif($nimage, $destination);
imagejpeg($nimage, $destination);
break;
case 2:
imagejpeg($nimage, $destination);
break;
case 3:
imagepng($nimage, $destination);
break;
case 6:
imagewbmp($nimage, $destination);
//imagejpeg($nimage, $destination);
break;
}
//覆盖原上传文件
imagedestroy($nimage);
imagedestroy($simage);
}
if($imgpreview==1)
{
echo "br图片预览:br";
echo "a href=\"".$destination."\" target='_blank'img src=\"".$destination."\" width=".($image_size[0]*$imgpreviewsize)." height=".($image_size[1]*$imgpreviewsize);
echo " alt=\"图片预览:\r文件名:".$destination."\r上传时间:\" border='0'/a";
}
}
?
/center
/body
/html
绝对好用!!!!给分吧
php 上传文件
刚学php时写的一个类,可以给你参考下,你所说的功能基本上也都有。
这个用作学习还是不错的。
?php
class fileup{
private $savefilepath; //保存路径
private $filetype=array('gif','jpg','jpeg','png'); //文件类型
private $maxsize=1000000; //上传最大的尺寸 默认值设置为1M
private $savename=true; //是否默认随机名称
private $upfileform; //上传文件表单的name值
//以下是不可以修改的成员属性
private $tmpname; //上传的临时文件名
private $upfilename; //上传文件的名称
private $uperror;
private $newname; //新的文件名
//private $upfiletype; //上传文件的类型
private $upfilesize; //上传文件的大小。
private $filehz; //文件名的扩展名。
//构造方法
function __construct($upfileform,$savefilepath='./upload/'){
$this-upfileform=$upfileform;
$this-savefilepath=rtrim($savefilepath,'/');
$this-tmpname=$_FILES[$upfileform]['tmp_name'];
$this-upfilename=$_FILES[$upfileform]['name'];
$this-upfilesize=$_FILES[$upfileform]['size'];
$this-uperror=$_FILES[$upfileform]['error'];
$this-getnewname();
}
//设置文件上传的参数,不设置为默认值。
function setfilepar($par){
$pars=array('filetype','maxsize','savename');
foreach($par as $key=$value){
if(in_array($key,$pars)){
$this-$key=$value;
}else{
continue;
}
}
}
//检查上传
private function checkfileup(){
//判断文件夹是否正确或文件夹是否有可写入的权限。
if(!is_dir($this-savefilepath)||!is_writable($this-savefilepath)){
$this-uperror=8;
return false;
}
//判断文件名是否存在
if(is_file($this-newname)){
$this-uperror=9;
return false;
}
//判断上传文件的类型是否正确。
if(!in_array(strtolower($this-filehz),$this-filetype)){
$this-uperror=-1;
return false;
}
return true;
}
//获取新的文件名字
private function getnewname(){
$tmp=explode('.',$this-upfilename);
$this-filehz=$tmp[count($tmp)-1];
if(is_bool($this-savename)){
if($this-savename){
$this-newname=$this-savefilepath.'/'.date('YmdHis').rand(10000,99999).'.'.$this-filehz;
}else{
$this-newname=$this-savefilepath.'/'.$this-upfilename;
}
}else{
$this-newname=$this-savefilepath.'/'.$this-savename.'.'.$this-filehz;
}
}
//获取错误信息
private function getuperror(){
switch($this-uperror){
case 1: echo '上传文件超过了系统指定的大小'; break;
case 2: echo '上传文件超过了表单中指定的大小'; break;
case 3: echo '文件只有部分上传'; break;
case 4: echo '没有文件上传'; break;
case 6: echo '找不到上传的文件,系统错误'; break;
case 7: echo '文件写入失败'; break;
case 8: echo '文件路径不存在,或不可写'; break;
case 9: echo '文件名已经存在,请不要重复上传'; break;
case -1: echo '不是指定上传的文件'; break;
case -2: echo '请勿使用非法途径上传'; break;
case -3: echo '文件上传失败'; break;
default: '未知错误'; break;
}
}
function fileupload(){
if(!$this-checkfileup()||$this-uperror!=0){
$this-getuperror();
return false;
}else{
if(!is_uploaded_file($_FILES[$this-upfileform]['tmp_name'])){
$this-uperror=-2;
$this-getuperror();
return false;
}else{
if(move_uploaded_file($_FILES[$this-upfileform]['tmp_name'],$this-newname)){
return true;
}else{
$this-uperror=-3;
return false;
}
}
}
}
//获取文件名
function getname(){
return $this-newname;
}
}