Id ชอบที่จะใช้รหัสนี้ แต่อิ่มไม่มาก PHP-กระตือรือร้นผมสามารถอ่านและเข้าใจมัน แต่ฉันมีปัญหาในการปรับเปลี่ยนการเขียนของตัวเองตั้งแต่ที่คุณกล่าวถึงการใช้งานของโมดูล Apache (X-sendfile ฉันคิดว่า) ผมสงสัยว่าถ้าคุณสามารถเขียนการปรับตัวของโค้ดข้างต้นสำหรับการใช้โมดูลนั้น (ตั้งแต่ผมใช้วิธีนี้ในเว็บไซต์ของฉัน)ผมสงสัยว่าถ้าช่วงอื่น ๆ ได้รับการสนับสนุนด้วยเอ็กซ์ sendfile. When ผมวางลงใน PHP ของฉันฉันไม่ได้รับการเริ่มต้นเป็นที่แน่นอนและรายการส่วนของฉันในหน้าตัวอย่างของคุณถูกต้องผมต้องลบแท็กบางอย่างที่แก้ไขของฉันเพิ่มเป็นประโยชน์และมีการจัดการที่จะออกจากบางช่องว่างภายนอกฉันสงสัยว่า PHP การเพิ่มช่องว่างนี้เข้าสู่กระแสเช่นมันจะเพิ่มเนื้อหา content. The html ที่ปกติภายในเครื่องหมายคำพูด () ในความคิดเห็นของฉันได้ปล้นผมกำลังหมายถึง PHP การเริ่มต้นและสิ้นสุดแท็กซ้ายมุมเครื่องหมายคำถามอื่น ๆ อ่านความคิดเห็นอื่น ๆ obclean () วิธีการคือการล้างบัฟเฟอร์ส่งออกก่อนที่จะเขียนเนื้อหาก็อาจจะเป็นวิธีการเดียวกันตนเองลือ problem. Interestingly นี้ใช้สำเนาข้อผิดพลาดสอดคล้องกับโพสต์ขวาวิธีการเดิมของคุณเกี่ยวกับการคัดลอกรหัสและไม่เข้าใจสิ่งที่เกิดขึ้น (ที่ไม่ดีของฉัน) ในกรณีนี้เซิร์ฟเวอร์ PHP การแสดงผลทุกตัวอักษรนอกแท็ก PHP เป็นหน้าเนื้อหาช่องว่าง included. Though ผมยังไม่ได้มีการจัดการที่จะลองแต่ฉันไม่สามารถช่วยสังเกตเห็นสิ่งหนึ่งที่: ในเงื่อนไขในบรรทัด 79 ของสคริปต์ที่คุณใช้ขนาด แต่มันก็ไม่ได้ประกาศทุกที่แน่นอนที่คุณหมายขนาดไฟล์เช่นใช้ในส่วนที่เหลือของ scriptI มีภาพที่ไม่ดีและไฟล์วิดีโอหลังจากเสร็จสิ้นการดาวน์โหลดมันดาวน์โหลดไฟล์เต็ม แต่ความเสียหายในฐานะที่เป็น im ทำงานกับการดาวน์โหลดไฟล์วิดีโอขนาดใหญ่ที่ดีที่ว่ามันดาวน์โหลดไฟล์ทั้งหมด แต่ความเสียหายเป็นสิ่งที่น่าผิดหวังโดยวิธี workShaun ดีที่ฉัน havent ทดสอบกับไฟล์กว่า 30 Mb แต่ในการทดสอบของฉันที่ดาวน์โหลดไฟล์เป็น 1: 1 เหมือนต้นฉบับIm ใช้สคริปต์ที่คล้ายกันมากในการดาวน์โหลดแอพพลิเคหลังจากที่ 7000 ดาวน์โหลดฉันไม่เคยมีการร้องเรียนใด ๆคุณสามารถลองดาวน์โหลดไฟล์ข้อความขนาดเล็กและเปรียบเทียบกับต้นฉบับฉันสงสัยว่าเธอเอาใจใส่ปัญหาการกำหนดค่าเซิร์ฟเวอร์ I couldnt ทดสอบสคริปต์ของฉันในทุกสถานการณ์ (ในความซื่อสัตย์สุจริตทุกฉันทำมันเพื่อให้เหมาะกับวัตถุประสงค์ของฉันเท่านั้น)ปิดการรายงานข้อผิดพลาดสำหรับการแจ้งเตือน 8212 ที่สำคัญในการโทรของคุณในรายการ ()ปิดการบีบอัด gzip ซึ่งเป็นสาเหตุของเบราว์เซอร์เพื่อยกเลิกการดาวน์โหลดบางครั้งเพิ่มความสามารถในการระบุกระแสในสตริงแบบสอบถามในการสตรีมเนื้อหาของแฟ้มการทำความสะอาดขึ้นตัวแปรประเภทเนื้อหาเพราะผมได้พบกับสวิทช์ / งบกรณีที่ดีมาก wordy. Very ขอบคุณสำหรับผลงานของคุณที่ผมกล่าวถึงการปิด gzip แต่ไม่ได้รหัสมันอิ่มใช้ในการตั้งเหล่านี้ทั้งหมดใน php. ini แต่แน่นอนทุกคนไม่ได้มีการเข้าถึงโดยเฉพาะอย่างยิ่งในพื้นที่สาธารณะและใช่ชนิดเนื้อหาจะถูกจัดการ neater ในรุ่นของคุณผมจะบูรณาการการเปลี่ยนแปลงใน code. I ของฉันต้องการแก้ปัญหาการดาวน์โหลดของคุณสำหรับการดาวน์โหลดไฟล์ขนาดใหญ่ (6 Gb) จากเซิร์ฟเวอร์ IIS ด้วย PHPสคริปต์ของคุณคือสิ่งที่ดีที่สุดที่ฉันได้พบเพื่อให้ห่างไกลล้มเหลว แต่ในไฟล์ขนาดใหญ่เช่นฉัน (สุดท้าย) พบว่าฟังก์ชัน PHP ขนาดไฟล์เป็นปัญหาที่อธิบายไว้ใน borngeek / 2011 / 28/03 php / และขนาดใหญ่ขนาดไฟล์-สำหรับสภาพแวดล้อมของ Windows มีวิธีแก้ปัญหาโดยใช้วัตถุระบบแฟ้มที่ฟังก์ชั่นขนาดไฟล์กว่าจะถูกแทนที่โดย: fsobj ใหม่ COM (Scripting. FileSystemObject) ฉ fsobj-GetFile (realpath (filepath)) ขนาดไฟล์ฉ-Sizeunset (fsobj) ฉันต้องการแก้ปัญหาการดาวน์โหลดสำหรับการดาวน์โหลดไฟล์ผ่านการเชื่อมต่อจีเมื่อเราดาวน์โหลดเนื้อหาหรือไฟล์ของเราโดยใช้การเชื่อมต่อ Wifi แล้วมันประสบความสำเร็จในการดาวน์โหลดในช่วงเวลาของการเชื่อมต่อ 3G ที่ล้มเหลวหลังวันที่ 1 Mb ดาวน์โหลดทุกไฟล์คุณสามารถอธิบายปัญหาของโปรแกรมหรือ otherfirst ขอบคุณทุกสำหรับสคริปต์ฉันเพียงแค่มีปัญหากับไฟล์บีบอัดอัปโหลดไปยังเซิร์ฟเวอร์ที่ทำงานได้ดีและผมสามารถเปิดเครื่องรูดไฟล์ทั้งหมดถ้าผมดาวน์โหลดไฟล์ที่มีสคริปต์ของคุณ (และยังมีสคริปต์ของตัวเอง) ไฟล์ ZIP เสียฉันมีความคิดว่าทำไมไม่มี.การทดสอบยังมีการบีบอัด gzip files. zlib. output ปิดไฟล์ PDF และไฟล์ข้อความกำลังทำงาน well. Im พยายามที่จะดำเนินการนี้เป็นสิ่งที่ WeTransfer สไตล์ซึ่งจะดึงไฟล์จากเว็บไซต์ FTP ที่ได้รับการเชื่อมโยงเช่น oursite / downloadfile2Iv03Fkm79Yc9อิ่มพบว่าเมื่อติดตั้งที่บนเว็บเซิร์ฟเวอร์ของเราแต่ละคนได้รับการดาวน์โหลดไป 63.6MB แล้วตัดหากไฟล์มีขนาดเล็กกว่านี้ก็เสร็จสมบูรณ์ดี แต่ถ้ามีขนาดใหญ่, thats ทั้งหมดที่คุณได้รับดาวน์โหลดมากกว่าหนึ่งแฟ้มในครั้งเดียวจะส่งผลในกลุ่มของไฟล์ที่ถูกตัดออกไปที่ 63.6MB ทั้งหมดผิดปกติมันจะทำงานได้ดีบนแล็ปท็อปของฉันกับ WAMP การติดตั้ง Ive ทดสอบมันขึ้นอยู่กับไฟล์ของ 2GB ในขนาดเพื่อให้ดูเหมือนว่าบางสิ่งบางอย่างที่จะทำอย่างไรกับวิธีการกำหนดค่าเซิร์ฟเวอร์เช่นเดียวกับในแต่ละกรณีของการพยายามที่จะได้รับไฟล์จาก FTP ที่เดียวกันเซิร์ฟเวอร์Ive รับการผ่าน php. ini และข้อ จำกัด เพิ่มขึ้นสำหรับ defaultsockettimeout, maxexecutiontime และ MemoryLimit แต่มีความแตกต่างในผลไม่มีideasFastcgi ใด ๆ ที่มีการปรับปรุงหลายรูปแบบ cgi แบบดั้งเดิมของการดำเนินการโปรแกรมภายนอกภายในเว็บเซิร์ฟเวอร์ด้วยกระบวนการหลาย fastcgi จะถูกเก็บไว้มีชีวิตอยู่และแต่ละขั้นตอนจะถูกนำกลับมาใช้ในการให้บริการการร้องขอหลายหนึ่งหลังจากที่อื่นมีการตั้งค่าเพื่อควบคุมจำนวนสูงสุดของการร้องขอกระบวนการที่สามารถให้บริการหลังจากที่กระบวนการในการยกเลิกและใหม่เป็น started. The สิ่งแรกที่ต้องทำคือการติดตั้งแพคเกจที่จำเป็นจาก synaptic มีเราจำเป็นต้องติดตั้งเซิร์ฟเวอร์ของ Apache ที่ modfastcgi คนงาน MPM และ php พร้อมกับไบนารีซีจีโปรดทราบว่าถ้าคุณมี PHP การติดตั้งกับ MPM prefork และ mod-php ที่แล้วมันจะถูกลบออกเมื่อติดตั้งเหล่านี้ packagesThe FastCgiServer ลงทะเบียน / usr / local / bin php /-fastcgi-ห่อเป็นโปรแกรม fastcgi กับ options. Note ต่างๆที่นี้เชลล์สคริปต์ที่จะเปิดตัวไบนารี PHP การ-cgi กับการตั้งค่าต่างๆโปรดทราบว่าเราถาม FastCgiServer ในการสร้างและจัดการกระบวนการ 10