ใน PHP ให้ส่งออกเป็นอาร์เรย์ไบต์และสตรีม อันไหนดีกว่า?

ฉันต้องเขียนบริการเว็บ php เพื่อส่งออกไฟล์ไปยังแอปพลิเคชันไคลเอนต์ Windows ฉันมีสองตัวเลือก Byte Array และ Streaming อันไหนดีกว่าและง่ายต่อการใช้งานใน PHP?

ขอบคุณสำหรับความช่วยเหลือของคุณ


person jack 101    schedule 31.05.2011    source แหล่งที่มา
comment
Byte Array และ Streaming คุณหมายถึงอะไร   -  person ideawu    schedule 31.05.2011
comment
ฉันสามารถส่งไฟล์ไปยังไคลเอนต์ในรูปแบบ ByteArray หรือสตรีมมันออกมาได้   -  person jack 101    schedule 31.05.2011


คำตอบ (1)


แค่เป็นไงล่ะ....

$file = 'some_file.exe';

$_size = filesize($_file);
header('Content-Type: binary/octet-stream');
header('Content-Length: '.$_size);
header('Content-Disposition: attachment; filename="' . basename($file) . '"; size=" . $_size);

@readfile($file);

หมายเหตุ: ดูความคิดเห็นเกี่ยวกับ ปัญหาบางอย่างเกี่ยวกับไฟล์ไบนารีอย่างไรก็ตาม

person Brad Christie    schedule 31.05.2011
comment
คุณควรใช้ readfile แทน echoing เนื้อหาที่อ่าน ฉันไม่คิดว่านี่คือสิ่งที่ OP ขอจริงๆ - person deceze♦; 31.05.2011
comment
@deceze: มันตลกดี (และอาจเป็นเพราะความเหนื่อยล้า) ฉันคิด file() ก่อน (รู้ว่ามันไม่ถูกต้อง) จากนั้นจึงไปที่ file_get_contents() readfile() คือ คุณพูดถูก ยิ่งพอดี อย่างไรก็ตาม ฉันแค่แสดงให้คุณเห็นว่าคุณต้องการผสมระหว่างส่วนหัวและเนื้อหาที่ส่งออกเพื่อให้ได้ผลลัพธ์ที่ต้องการ - person Brad Christie; 31.05.2011