그러냐

이미지 다운로드시 무조건 다운로드창 뜨게 하기 본문

php

이미지 다운로드시 무조건 다운로드창 뜨게 하기

관절분리 2016. 1. 25. 14:36
반응형

1.


$fileName = "a.gif";

header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment;filename=".$fileName);
header("Content-Transfer-Encoding: binary");
Header("Cache-Control: cache, must-revalidate");

readfile($fileName);


2.


$f_src = "이미지경로" ;

$f=@fopen($f_src,"r");
Header("Content-type: application/plain");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Cache-Control: must-revalidate");
Header("Content-Disposition: attachment; filename=파일명 지정가능");
Header("Content-Description: PHP Generated Data");
while( $data = fread($f, filesize($f_src)) ){
print($data);
}


3.


[PHP] socket이용한 타사이트 이미지 읽기

 [펌]http://phpleader.net/bbs/view.php?&ss[fc]=3&bbs_id=php_04&page=7&doc_num=192

function fetch_url($url) {
    $url_parsed = parse_url($url);
    $host = $url_parsed["host"];
    $port = $url_parsed["port"];
    if($port==0) $port = 80;
    $path = $url_parsed["path"];

    if(empty($path)) $path = "/";
    if(empty($host)) return false;

    if($url_parsed["query"] != "") $path .= "?".$url_parsed["query"];
    $out = "GET ".$path." HTTP/1.0\r\nHost: ".$host."\r\n\r\n";
    $fp = fsockopen($host, $port, $errno, $errstr, 30);
    usleep(50);
    if($fp) {
        socket_set_timeout($fp, 30);
        fwrite($fp, $out);
        $body = false;
        while(!feof($fp)) {
            $buffer = fgets($fp, 128);
            if($body) $content .= $buffer;
            if($buffer=="\r\n")    $body = true;
        }
        fclose($fp);
    }else {
        return false;
    }
    return $content;
}

$image = fetch_url("url");
$f = fopen("./data/test.jpg","w");
$lock=flock($f,2);
if($lock) {
    fwrite($f,$image);
}
flock($f,3);
fclose($f);

 

반응형