Domanda

Sto fornendo a un utente un link per scaricare un file CSV ... solo usando

Click <a href="report.csv">here</a> to download your file.

Questo testo e questo link vengono visualizzati in una piccola finestra popup - altezza 100 larghezza 400.

Se l'utente fa clic su " salva " - quindi nessun problema, il file viene salvato ovunque scelgano

Se però scelgono " apri " il file CSV viene quindi visualizzato nella piccola finestra popup. Che non è quello che voglio - Preferirei Excel aprire e visualizzare il file in Excel, o anche disabilitare l'opzione "apri" il pulsante potrebbe essere un'opzione possibile.

Qualche idea su come posso raggiungere entrambi?

Grazie,

È stato utile?

Soluzione

Suppongo che tu stia aprendo quella finestra pop-up usando un po 'di javascript .. quindi suggerirei di non mostrare / aprire il tuo minuscolo "download " finestra popup e invece mostra questo link in una pagina web. Quindi, quando qualcuno fa clic sul collegamento, forza il browser a scaricare il file e se desidera aprirlo può e probabilmente ottenere una vista ampia quanto la dimensione di Windows del browser.

// solo per esempio, per forzare il download di un file zip, invia le intestazioni come

// Set headers
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file");
header("Content-Type: application/zip");
header("Content-Transfer-Encoding: binary");

Altri suggerimenti

Non hai alcun potere sulle impostazioni degli utenti come il tipo di file aperto da quale applicazione. Dovrebbero andare alle loro impostazioni e cambiare l'associazione dei file. Tuttavia, tieni presente che non tutti hanno installato Excel, quindi non è una buona idea forzare l'utente ad aprire il file CSV in questa particolare applicazione.

Inoltre non penso che tu possa disabilitare l'opzione Apri, questo è anche dettato dalla configurazione del browser web se visualizzerà o meno la finestra o lancerà direttamente l'applicazione associata ecc ... sembra che tu ' sei sfortunato nel tuo caso particolare.

Credo che sia a livello di sistema operativo e non possa essere modificato.

Una mezza soluzione sta aggiungendo target = " _blank " al tag. In questo modo, quando gli utenti selezionano l'opzione 'apri', almeno il file verrà aperto in una nuova finestra (a schermo intero o almeno ridimensionabile).

A parte questo, non è possibile modificare il comportamento della finestra, come affermato da ceejayoz.

  • Assicurati di non fare altri output prima di questo punto
  • Costruisci la tua stringa csv e salvala in $ csvString
  • Assegna il nome file appropriato in $ csv_filename
  • Le intestazioni dovrebbero indicare al browser di caricarlo in Excel

    header (" Cache-Control: maxage = 1 ");

    header (" Pragma: public ");

    header (" Content-Type: application / vnd.ms-excel ");

    header (" Scade: 0 ");

    header (" Cache-Control: must-revalidate, post-check = 0, pre-check = 0 ");

    header (" content-disposition: attach; nomefile = $ csv_filename ");

    echo $ csvString;

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top