>  기사  >  php教程  >  为Hanking解读代码

为Hanking解读代码

PHP中文网
PHP中文网원래의
2016-05-25 17:12:19969검색

为Hanking解读代码

<?php
// 上传的最终目录
$dirname = "/tmp/phonegap/uploads";
// 如果有上传文件的话
// 凡是以上传的方式post的话,这个$_FILES都会有内容
// 这里最好改为 if (!empty($_FILES))
if ($_FILES) {
    // 打印出上传的内容
    print_r($_FILES);
    // 创建上传的最终目录, mkdir(目录名称, 目录访问权限, 如果目录不存在是否递归创建目录)
    // 这里最好判断一下if (!is_dir($dirname))
    mkdir ($dirname, 0777, true);
    // 将上传文件从临时目录中转移到最终的目录。
    // 这里说一下,php的上传模式,所有php的上传,是默认传到系统的临时文件夹中,
    // 如果你不调用move_uploaded_file,他是不会将文件移动到你想要目录去的。
    // 如果你制定了php.ini中,上传的临时文件,临时文件夹则是php.ini中指定的文件夹。
    move_uploaded_file($_FILES["file"]["tmp_name"],$dirname."/".$_FILES["file"]["name"]);
}
// 如果uri中的query string中,有image=xxxxx的方式的话
else if (isset($_GET[&#39;image&#39;])) {
    // 生成该图片保存到本地的全路径
    // 这里不做过滤和检查,很危险的哦
    $file = $dirname."/".$_GET[&#39;image&#39;];
    // 指定当前请求转为jpeg的header输出
    header(&#39;Content-type: image/jpeg&#39;);
    // 取得图片的信息
    list($width, $height) = getimagesize($file);
    // 这里是重新调整图片的大小
    $newWidth = 120.0;
    $size = $newWidth / $width;
    $newHeight = $height * $size;
    $resizedImage = imagecreatetruecolor($newWidth, $newHeight);
    // 将图片生成到$file的路径中去
    $image = imagecreatefromjpeg($file);
    imagecopyresampled($resizedImage, $image, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
    // 并且创建一张品质为80的缩略图预览
    imagejpeg($resizedImage, null, 80);
}
// If displaying images
else {
    // 这个是生成当前服务器的基础url
    $baseURI = "http://".$_SERVER[&#39;SERVER_NAME&#39;].&#39;:&#39;.$_SERVER[&#39;SERVER_PORT&#39;].$_SERVER[&#39;REQUEST_URI&#39;];
    // 获取上传目录下的文件名
    $images = scandir($dirname);
    $ignore = Array(".", "..");
    // 如果存在文件的话,
    // 这里最好改为 if (!empty($images))
    if ($images) {
        // 遍历这个目录下的文件,并且生成<img>以供观看
        // 不过这写法也太不讲究了,不分目录和文件
        foreach($images as $curimg){
            if (!in_array($curimg, $ignore)) {
                echo "Image: ".$curimg."<br>";
                echo "<img src=&#39;".$baseURI."?image=".$curimg."&rnd=".uniqid()."&#39;><br>";
            }
        }
    }
    else {
        echo "No images on server";
    }
}
?>

                   

以上就是为Hanking解读代码的内容,更多相关内容请关注PHP中文网(www.php.cn)!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.