2010-09-11 5 views
1

Si le fichier de téléchargement avec php, avec la manière simple, je peux faire comme cette pagePHP - Peut télécharger sans <form> tag?

<?php 
    if($_FILES) 
{ 
    DO UPLOAD 
} 
?> 
<form action='' enctype='multipart/form-data' method='post'> 
    <input type="file" name="file"> 
    <input type="submit" name="upload" value="submit"> 
</form> 

Et maintenant, je dois télécharger le fichier, mais avec des tags <form> comme celui-ci

------index.html---- 
    <input type="file" name="file"> 
    <a href="upload.php">Upload</a> 
-------------------- 

------upload.php----- 
CODE PHP TO UPLOAD FILE 
--------------------- 

quand cliquez sur télécharger lien, il peut s'agir d'une page qui télécharge.

Mais je ne sais pas comment la page de téléchargement peut obtenir le fichier sans forme tag

simple index.html uniquement pour envoyer le nom du fichier, et où il local pour télécharger la page proccess

désolé pour mon Mauvais anglais

Répondre

1

Ce n'est pas tout à fait clair ce que vous voulez. Mais il existe en fait un moyen de télécharger des fichiers sans formulaires (et sa méthode de requête POST/ctype). C'est ce qu'on appelle une demande "PUT". Toutes les grandes bibliothèques http peuvent le faire. Les principaux navigateurs uniquement via AJAX. Cependant, le script de réception doit être spécifiquement pris en charge par celui-ci. Doit vérifier $ _SERVER [REQUEST_METHOD] et lire le formulaire php: // input, et il a juste permis de recevoir un seul fichier. Il pourrait même être nécessaire de le configurer comme gestionnaire Apache:

Premier résultat Google: http://www.phpbuilder.com/manual/features.file-upload.put-method.php

+0

très usefful, merci pour la grande suggestion – Chameron

+0

Mais comment la requête Ajax accède-t-elle au fichier source qui doit être téléchargé? J'ai du mal à imaginer que cela fonctionne –

+0

@Pekka HTML5 glisser et déposer + fichier api pour un.Ici, vous pouvez également lire un une fois qu'il a été sélectionné.Mais de toute façon, XMLHttpRequest accepte PUT comme méthode de transfert. – mario

0

Non. Seulement avec l'aide du formulaire multipart/orm-data vous pouvez envoyer un tableau $ _FILES pour le téléchargement.

+0

si le téléchargement de la page ont formulaire de téléchargement. Et j'utilise javascript obtenir le chemin du fichier upload index.html à l'entrée du navigateur de fichiers dans upload.php puis télécharger – Chameron

0

Non, il n'est pas possible d'effectuer un téléchargement de fichier standard sans balise <form>. La seule exception serait une solution de contournement jQuery/Javascript.

+0

si page d'index seulement pour stocker le chemin du fichier. Et je reçois ce chemin pour télécharger la page par javascript, puis télécharger. – Chameron

0

Il semble que ce que vous voulez est un bouton de soumission qui ressemble à un lien. Vous voulez probablement quelque chose comme (HTML):

<form action="upload.php" type="multipart/form-data"> 
    <input type="file" name="file" /> 
    <button type="submit" class=="upload-submit">Upload</button> 
</form> 

Et (CSS):

button.upload-submit { 
    display: inline; 
    margin: 0; 
    padding: 0; 
    border: 0; 
    color: #00f; /* Your link color here */ 
    background-color: transparent; 
    text-decoration: underline; 
} 
+0

merci pour la réponse, mais je n'ai pas besoin de quelque chose comme ça. – Chameron

+0

@Chameron, de quoi avez-vous besoin? C'est vague. Vous voulez télécharger un fichier et vous voulez que le fichier de téléchargement soit une balise ''. Soit vous voulez un bouton de soumission de téléchargement qui ressemble à un lien, ou vous n'avez pas été clair ce que vous voulez. – eyelidlessness