Eğer indirmek için kullanıcıyı zorlama dosyanın dosya türünü bilmek nasıl?

5 Cevap php

Bir dosyayı indirmek için kullanıcı zorlamak çalışıyorum. Bunun için benim senaryom:

$file = "file\this.zip";        
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file");
header("Content-Type: application/zip"); //This is what I need
header("Content-Transfer-Encoding: binary");
readfile($file);

The files I am going to upload my not be .zip all the time so I want to know the content type of the image I am going to receive in $file. How to accomplish this

5 Cevap

Ben her zaman application/octet-stream (veya böyle somwething) tarayıcı olarak daha sonra deneyin ve herhangi bir şekilde görüntülemek koymak, o zaman / Çalıştır Kaydet kullanıcıyı zorlar, o dosya türü tarafından sık sık olayla uzantısı.

Görüntüler için, en güvenilir getimagesize(). Başka herhangi bir tür için, Fileinfo fonksiyonlar doğru şey vardır.

Ben ikinci ne ck olsa, diyor ki: Bir indirme zorlama olduğunda, octet-stream tarayıcıda açılması veya ilgili istemci uygulamasından şeyleri önlemek için en iyi seçimdir.

Hey, aşağıdaki linke size ihtiyacınız Content-Type değerlerini görebilirsiniz:

Internet Media Type

There are just too many to list here Ladislav

Tamam, ben kendim yaptım.

Ben kullanılan

$type = filetype($file); //to know the type

Orada mime-type göndermeniz gerekir. Sen mime türü dahil olmak üzere dosya çok sayıda bilgi, almanın bir yol sağlar mime_content_type function. There's also the Fileinfo uzantısını kullanarak PHP bu alabilirsiniz.