有没有思忖过用PHP来做多线程操作
有没有考虑过用PHP来做多线程操作~
最近完善下载类中一个远程下载文件 考虑是不是可以分别分段读取文件内容 最后组合。经测试可行哦~ 这是我测试的本地文件~
我想的是咋个可以最简单封装针对任意本地文件 or远程文件 进行操作! 请看:
//PHP分段读取文件 这里我只分了两段 实际上可以通过文件大小 按照预定段大小 进行分段..
$file = dirname(__FILE__).'/bullyframework_zend.7z';
echo filesize($file);
$handle = fopen($file, "rb");
$contents = fread($handle, ceil(filesize($file)/2)); //分两次读取文件组合
$now_tell = ftell($handle); //获取当前指针
$end = fread($handle, filesize($file) - $now_tell); //从当前指针处读取剩余文件
fclose($handle);
file_put_contents('test.7z', $contents.$end); //写入文件 验证文件是否完整
echo "
";
echo filesize('test.7z');
?>
------解决方案--------------------
分块下载需要双方都支持“断点续传”
一般下载工具都支持,所以你需要做的是服务器端。php实现的断点续传服务大致如下
- PHP code
// Begin writing headers header("Cache-Control:"); header("Cache-Control: public"); header("Content-Type: $ctype"); $filespaces = str_replace("_", " ", $filename); // if your filename contains underscores, replace them with spaces $header='Content-Disposition: attachment; filename='.$filespaces; header($header); header("Accept-Ranges: bytes"); $size = filesize($file); // check if http_range is sent by browser (or download manager) if(isset($_SERVER['HTTP_RANGE'])) { // if yes, download missing part $seek_range = substr($_SERVER['HTTP_RANGE'] , 6); $range = explode( '-', $seek_range); if($range[0] > 0) { $seek_start = intval($range[0]); } if($range[1] > 0) { $seek_end = intval($range[1]); } header("HTTP/1.1 206 Partial Content"); header("Content-Length: " . ($seek_end - $seek_start + 1)); header("Content-Range: bytes $seek_start-$seek_end/$size"); } else { header("Content-Range: bytes 0-$seek_end/$size"); header("Content-Length: $size"); } //open the file $fp = fopen("$file","rb"); //seek to start of missing part fseek($fp,$seek_start); //start buffered download $n = 0; while(!feof($fp)) { //reset time limit for big files echo fread($fp,1024*$speed); } fclose($fp); exit;<div class="clear"> </div>

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











오픈 소스에 대해 자세히 알아보려면 다음을 방문하세요. 51CTO Hongmeng 개발자 커뮤니티 https://ost.51cto.com 실행 환경 DAYU200:4.0.10.16SDK: 4.0.10.15IDE: 4.0.600 1. 애플리케이션을 생성하려면 파일을 클릭합니다. >새파일->CreateProgect. 템플릿 선택: [OpenHarmony]EmptyAbility: 프로젝트 이름 shici, 애플리케이션 패키지 이름 com.nut.shici 및 애플리케이션 저장 위치 XXX(한자, 특수 문자, 공백 없음)를 입력합니다. CompileSDK10, 모델: 스테이지. 장치

파일 크기를 얻으려면 Java의 File.length() 함수를 사용하십시오. 파일 크기는 파일 작업을 처리할 때 매우 일반적인 요구 사항입니다. Java는 파일 크기를 얻는 매우 편리한 방법, 즉 길이( ) File 클래스의 메서드입니다. 이 기사에서는 이 방법을 사용하여 파일 크기를 가져오는 방법을 소개하고 해당 코드 예제를 제공합니다. 먼저, 크기를 구하려는 파일을 나타내는 File 객체를 만들어야 합니다. File 객체를 생성하는 방법은 다음과 같습니다: Filef

Seek Thermal은 Android 및 iOS 휴대폰용으로 개선된 Nano 200 및 Nano 300 열화상 카메라를 출시했습니다. 적외선 카메라는 열을 감지하여 PC 모더가 CPU 및 GPU를 오버클러킹할 때 냉각 및 가열 문제를 신속하게 감지하는 데 도움이 됩니다. 전통

PHP Blob을 파일로 변환하는 방법: 1. PHP 샘플 파일을 생성합니다. 2. "function blobToFile(blob) {return new File([blob], 'screenshot.png', { type: 'image/jpeg' })를 통해 } ” 메소드를 사용하여 Blob을 파일로 변환할 수 있습니다.

Java의 File.renameTo() 함수를 사용하여 파일 이름을 바꿉니다. Java 프로그래밍에서는 파일 이름을 바꿔야 하는 경우가 많습니다. Java는 파일 작업을 처리하기 위해 File 클래스를 제공하며 renameTo() 함수는 파일 이름을 쉽게 바꿀 수 있습니다. 이 기사에서는 Java의 File.renameTo() 함수를 사용하여 파일 이름을 바꾸는 방법을 소개하고 해당 코드 예제를 제공합니다. File.renameTo() 함수는 File 클래스의 메서드입니다.

[SpringBoot] Feign 호출을 통해 헤더에 매개변수 전달 Feign을 통해 헤더 매개변수를 전달하는 방법 문제 설명 Feign을 사용하여 Spring Cloud에서 다른 서비스의 API 인터페이스를 요청할 때 헤더에 매개변수를 전달해야 합니다. 특수 처리가 완료되면 헤더의 매개변수가 손실됩니다. 해결 방법 1: @RequestHeader(name="headerName")을 통해 전달합니다. 예: Feign은 @FeignClient(name="service-name")pub와 같이 정의됩니다.

Linux 헤더는 콘텐츠에 대한 메타데이터를 포함하는 데 사용되는 파일 또는 데이터 스트림의 시작을 의미합니다. 헤더 파일을 올바르게 작성하고 사용함으로써 개발자는 시스템 리소스를 더 잘 활용하고 코드 가독성과 유지 관리성을 향상시킬 수 있습니다.

Java의 File.getParentFile() 함수를 사용하여 파일의 상위 디렉터리를 가져옵니다. Java 프로그래밍에서는 파일과 폴더를 조작해야 하는 경우가 많습니다. 파일의 상위 디렉토리를 가져와야 할 경우 Java에서 제공하는 File.getParentFile() 함수를 사용할 수 있습니다. 이 문서에서는 이 함수를 사용하는 방법을 설명하고 코드 예제를 제공합니다. Java의 파일 클래스는 파일과 폴더를 조작하는 데 사용되는 주요 클래스입니다. 파일 속성을 얻고 조작하는 다양한 방법을 제공합니다.
