>  기사  >  백엔드 개발  >  PHP는 기본 기능을 사용하여 파일 업로드 및 다운로드를 구현합니다.

PHP는 기본 기능을 사용하여 파일 업로드 및 다운로드를 구현합니다.

伊谢尔伦
伊谢尔伦원래의
2016-11-26 16:05:001484검색

파일 업로드:

if ( $_FILES && $_FILES['attachment'] && $_FILES['attachment']['tmp_name']){
    $filesize = $_FILES['attachment']['size'];
    //文件上传大小限制:5M
    if($filesize > 5*1024*1024){
        exit('上传文件大小超出限制!');
    }
    //文件保存目录,如果不存在则创建之
    $uploaddir = ROOT_DIR.'/public/attachment/notice/';
    if(!file_exists($uploaddir))
        mkdir($uploaddir,0755,true);
    //获取上传文件扩展名
    $arr_file = explode('.', basename($_FILES['attachment']['name']));
    $filetype = $arr_file[count($arr_file)-1];
    //获取源文件名
    $attachment_name = basename($_FILES['attachment']['name']);
    //对文件进行重命名以避免中文字符的影响
    $fname = md5(basename($_FILES['attachment']['name']).microtime()).'.'.$filetype;
    $uploadfile = $uploaddir . $fname;
    if (move_uploaded_file($_FILES['attachment']['tmp_name'], $uploadfile)) {
        //获取文件相对路径
        $attachment = '/public/attachment/notice/'. $fname;
    } else {
        exit('文件上传失败!');
    }
}

참고: "첨부 파일"은 업로드된 파일의 이름으로, 프로젝트의 특정 속성 값에 따라 수정됩니다. 이 업로드 프로세스는 파일 형식에 제한을 두지 않으며 특정 요구 사항에 따라 직접 처리할 수 있습니다.

파일 다운로드:

//输入文件标签 
Header ( "Content-type: application/octet-stream" ); 
Header ( "Accept-Ranges: bytes" ); 
Header ( "Accept-Length: " . filesize ( $attachment_filepath ) ); 
Header ( "Content-Disposition: attachment; filename=" . $attachment_filename ); 
//输出文件内容 
//读取文件内容并直接输出到浏览器 
echo file_get_contents($attachment_filepath); 
exit ();


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