Kullanıcıların masaüstünde dosyayı kaydetmek

4 Cevap

Ben pdf oluşturmak mümkün im bir dosya var, ama yolu otomatik olarak kaydetmek istiyorum, kullanıcılar masaüstü olmak istiyorum.

$pdf->Output("sample.pdf");

Ne yolu olmalıdır.

4 Cevap

Olursa olsun, sunucu tarafında ne var bu büyük bir güvenlik delik olacaktır otomatik olarak onlardan hiçbir etkileşimi ile tarayıcı üzerinden bir kullanıcının sisteminde bir dosya kaydetmek mümkün olmayacaktır. Kullanıcı her bir dosyanın kaydetme onaylamak zorunda kalacak.

Benzer nedenlerle Eğer tarayıcı üzerinden bir Kullanıcı sisteminin dizin yapısını sorgulamak mümkün olmayacak ve ben sanmıyorum olsa dahi bir tarayıcılarla şey kaydetmek için önerilen bir dizin verebilir.

PHP ile yapamazsın. PHP sunucu üzerinde, değil kullanıcının masaüstünde çalışır. Muhtemelen sunucu üzerinde bir yere dosya depolamak ve daha sonra kullanıcıya oluşturulan dosyayı indirmek için bir bağlantı göstermek istiyorum.

Elbette sürece, kullanıcının bilgisayarında (yani apache veya başka bir web sunucusu Sorunuzu netleştirmek lütfen bu durumda sizin kullanıcının bilgisayarında yüklü olan yerel PHP çalışan bahsediyoruz.

Aslında üzerinde çalışan sistem, bir Win32 tipi makinedir eğer php komut Komut Satırı Arabirimi veya PHP-GTK ile istemci tarafı uygulaması olarak çalışan varsayarsak, önce kontrol etmelisiniz.

Sonra böyle bir kullanıcının masaüstü klasör olarak bilinen bir konuma dönen yerel Win32 API işlev çağrısı çağırmak için Windows Only Extensions kullanmak gerekiyordu, ki [(2)] olan SHGetFolderPath() { } ikinci bir parametre olarak.

Ancak script bir sunucu üzerinde çalışıyorsa, onun aslında bunu yapmak için talimat olmaksızın doğrudan kullanıcının masaüstünde dosya koymak için hiçbir yolu yoktur.

Sen tarayıcıya çıktı PDF gerektiği ve dosya PDF (veya sadece indirilebilir bir indirme zorlamak gibi) olarak kabul edilmesi için uygun başlıklarını sağlayın. Ayrıca değil kudreti bozuk dosya olarak PDF daha başka bir şey çıktı emin olun.

EDIT: unutmayın bunu otomatik indir Force için, güvenlik nedenlerinden dolayı, mümkün değil bir webbrowser kullanırsanız. Sen sadece bir indirme isteyebilir, bunu aktive değil.

Eğer (bir Linux iş istasyonu üzerinde örneğin) bir PHP komut dosyası bahsediyoruz, muhtemelen tamamen farklı bir şey yapmak istiyorum. , Doğrudan komut dosyası çalıştırırsanız - PDF kütüphanesi, bir yolunu belirtmeniz izin vermiyorsa, bir web tarayıcısı sans başlıklarını yapmak ve çıkış yakalamak ve bir dosyaya yazmak için bir çıkış tampon kullanmak istiyorsunuz aynı şeyi Ev dizini yazmak için gerekli ayrıcalıklara sahip olacak.