Illustrator açılış PDF olarak

1 Cevap php

Ben ofis için bir dosya paylaşım uygulamasını kodlama duyuyorum. Ben giderken Bir garip sorun download butonuna vurduğunuzda Illustrator dosyaları, PDF açıldı ediliyor.

Illustrator dosya mime türü application/pdf olduğundan, bu sorun tetiklenir. Bu yüzden, dosyayı okur tarayıcı dosyayı açmak için Acrobat tetikler. Ben Illustrator dosyayı açmak için tarayıcı talimat verebilecek herhangi bir yolu var mı?

Veya dosyayı yüklemeden sonra mime türünü değiştirmek için herhangi bir yolu var mı? Arka uç kod PHP.

Herhangi bir yardım için teşekkür ederiz.

1 Cevap

Bunu yapmanın bir yolu, "dosya indirme"-iletişim görüntülemek için tarayıcı zorlamaktır. Yani kullanıcı dosya ile ne karar verebilirsiniz.

Bu PHP-Başlıkları üzerinden yapılabilir. (http://www.php.net/manual/en/function.header.php#83384)

Bu nasıl (Mesaj 83384) üzerine bir örnek de var:

<?php
    // downloading a file
    $filename = $_GET['path'];

    // fix for IE catching or PHP bug issue
    header("Pragma: public");
    header("Expires: 0"); // set expiration time
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    // browser must download file from server instead of cache

    // force download dialog
    header("Content-Type: application/force-download");
    header("Content-Type: application/octet-stream");
    header("Content-Type: application/download");

    // use the Content-Disposition header to supply a recommended filename and
    // force the browser to display the save dialog.
    header("Content-Disposition: attachment; filename=".basename($filename).";");

    /*
    The Content-transfer-encoding header should be binary, since the file will be read
    directly from the disk and the raw bytes passed to the downloading computer.
    The Content-length header is useful to set for downloads. The browser will be able     to
    show a progress meter as a file downloads. The content-lenght can be determines by
    filesize function returns the size of a file.
    */
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: ".filesize($filename));

    @readfile($filename);
    exit(0);
?>

Bu örneği kullanırken kullanarak düşünün lütfen

$filename = $_GET['path'];

is a big security problem. You should work with something like ID's instead or validate the input. For example:

if($_GET['file'] == 1) {
    $filename = foobar.pdf;
} elseif($_GET['file'] == 2) {
   $filename = foo.pdf;
} else {
   die();
}