J'ai un script de téléchargement de fichier que j'ai écrit, qui lit des fichiers de dessous public_html et permet à l'utilisateur de les télécharger après avoir vérifié si l'utilisateur est connecté et que le fichier est un fichier valide pour les télécharger.
Un problème que j'ai rencontré récemment est que sur un iPad, cela ne fait que faire quoi que ce soit lorsque le lien est cliqué sur le lien. p>
Exemple Télécharger le code de fichier après toutes les vérifications ont été effectuées: P >
header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: private",false); header("Content-Type: application/msword"); header("Content-Disposition: attachment; filename=\"file.doc\";" ); header("Content-Length: 50688"); readfile(SITE_PATH .'/files/file.doc');
3 Réponses :
iOS Safari ne prend pas en charge le téléchargement de fichier ..
mise à jour: mais si vous souhaitez ouvrir les fichiers .doc sur iPad, alors oui .. Vous pouvez le faire ... P>
Utilisez Suivant - p> la seule différence de votre code et de mien est-ce que j'ai supprimé l'en-tête pour la pièce jointe
Il suffit de supprimer ces en-tête - p> en réalité, vous pouvez vérifier le système d'exploitation client si le système d'exploitation est iOS, puis n'ajoute pas d'en-tête pour télécharger comme celui-ci - p> header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: application/msword");
if (!Operating_System_Is_IOS)
{
header("Content-Disposition: attachment; filename=\"file.doc\";" );
header("Content-Length: 50688");
}
readfile(SITE_PATH .'/files/file.doc');
Habituellement, l'iPad ouvrira ces documents (si liés directement). Alors, ce n'est-il pas quelque chose que je puisse faire pour imiter ce comportement? c'est-à-dire ouvert au lieu de tenter de télécharger.
Apple a verrouillé les périphériques iOS afin que vous ne puissiez pas accéder à la structure de fichiers. En tant que tel, ils ont désactivé les téléchargements de fichiers. P>
Vous pouvez forcer l'utilisateur à coller le lien (avec une pièce d'identité limitée en cas de connexion ...) dans une application tierce, comme Goodrerader. Ou laissez-les simplement voir le fichier DOC dans le navigateur. P>
Non liée: Vous avez deux champs d'en-tête de type de contenu. Choisir un. En outre, le codage de transfert de contenu n'est pas un champ d'en-tête HTTP.
@Julianreschke a enlevé ceux-ci, semble qu'il n'avait aucun effet. Question mise à jour à refléter.
Comment l'avez-vous résolu?