码迷,mamicode.com
首页 > Web开发 > 详细

文件上传 源码

时间:2018-05-23 15:25:56      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:round   tip   name   switch   var   new   osi   color   src   

<!--?php //上传文件类型列表 $uptypes=array( ‘image/jpg‘, ‘image/jpeg‘, ‘image/png‘, ‘image/gif‘, ‘image/bmp‘, ); $max_file_size=2000000; //上传文件大小限制, 单位BYTE $destination_folder="uploadimg/"; //上传文件路径,默认本地路径 $watermark=1; //是否附加水印(1为加水印,其他为不加水印); $watertype=1; //水印类型(1为文字,2为图片) $waterposition=1; //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中); $waterstring = "hello world"; //水印字符串 $waterimg=""; //水印图片 $imgpreview=1; //是否生成预览图(1为生成,其他为不生成); $imgpreviewsize=1/2; //缩略图比例 ?-->


图片上传

<style type="text/css">
<!-- body { font-size: 16px; } input { background-color: #66CCFF; border: 1px inset #CCCCCC; } --><br />
</style>

&nbsp;

<form enctype="multipart/form-data" method="post" name="upform">上传文件:
<input name="upfile" type="file" />
<input name="upfiles" type="file" />
<input type="submit" value="上传" />
允许上传的文件类型为:<!--?php echo implode(‘, ‘,$uptypes);?--></form><!--?php &lt;/p&gt;
&lt;p&gt;if ($_SERVER[‘REQUEST_METHOD‘] == ‘POST‘) //$_SERVER[‘REQUEST_METHOD‘]提交表单的方式,这里用POST提交。&lt;br ?--> {

if (!is_uploaded_file($_FILES["upfile"]["tmp_name"]))
//判断是否存在文件
{
echo "图片不存在!";
exit;
}

foreach ($_FILES as $f) {
// die(var_dump($_FILES));
$file = $f;
// $file = $_FILES["upfile"];
if($max_file_size &lt; $file["size"]) //检查文件大小 { echo "文件太大!"; exit; } if(!in_array($file["type"], $uptypes)) //检查文件类型 { echo "文件类型不符!".$file["type"]; exit; } if(!file_exists($destination_folder)) //file_exists() 函数检查文件或目录是否存在。 { mkdir($destination_folder); //mkdir() 函数创建目录。 } $filename = $file["tmp_name"]; $image_size = getimagesize($filename); $pinfo = pathinfo($file["name"]); //pathinfo() 函数以数组或字符串的形式返回关于文件路径的信息。 $ftype = $pinfo[‘extension‘]; //"extension"在PHP.INI文件里面 因为我们要用到GD库 $destination = $destination_folder.time().".".$ftype; if (file_exists($destination) &amp;&amp; $overwrite != true) //判断是否存在同名文件 { $destination = $destination_folder.time().rand(1,9999).".".$ftype; // echo "同名文件已经存在了"; // exit; } if(!move_uploaded_file ($filename, $destination)) { echo "移动文件出错"; exit; } $pinfo = pathinfo($destination); $fname = $pinfo["basename"]; $zip = new ZipArchive; //首先实例化这个类 if ($zip-&gt;open(‘test.zip‘,ZipArchive::CREATE === TRUE)){
//然后查看是否存在test.zip这个压缩包
if ($zip-&gt;addFile($destination)) {
echo ‘
ok‘;
}//添加到test.zip压缩包中
$zip-&gt;close(); //关闭
} else {
echo ‘
failed‘;
}
echo " <span style="color: red;">已经成功上传</span>
文件名: <span style="color: blue;">".$destination_folder.$fname."</span>
";
echo " 宽度:".$image_size[0];
echo " 高度:".$image_size[1];
echo "
大小:".$file["size"]." bytes";
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("不支持的文件类型");
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 "
图片预览:
";
echo "<img src="\&quot;&quot;.$destination.&quot;\&quot;" alt="\&quot;图片预览:\r文件名:&quot;.$destination.&quot;\r上传时间:\&quot;" width=".($image_size[0]*$imgpreviewsize)." height=".($image_size[1]*$imgpreviewsize); echo " />";
}
}
}
?&gt;

文件上传 源码

标签:round   tip   name   switch   var   new   osi   color   src   

原文地址:https://www.cnblogs.com/xin521/p/9077013.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!