web-dev-qa-db-fra.com

Ne pas télécharger un fichier si l'URL de téléchargement utilise un port localhost différent

J'ai un fichier texte et je veux le télécharger. Je travaille chez localhost. La page HTML à partir de laquelle je télécharge le fichier est appelée à partir de localhost: 8080. Et le fichier que je veux télécharger, j’appelle en utilisant un autre port, à savoir "localhost: 100".

Si j'aime bien cela, je ne reçois pas ce fichier txt particulier, en fait, l'emplacement complet du dossier est téléchargé au format HTML. Comment résoudre ce problème ?

Mais lorsque le port est identique pour HTML et pour l'URL de téléchargement, ce fichier texte particulier est en cours de téléchargement.

EDIT

Page HTML ( http: // localhost: 8080/project/test.html )

    <HTML>
    <HEAD>
    <script src="//code.jquery.com/jquery-1.9.1.js"></script>
    <script type="text/javascript">
        var url="http://localhost:100/test";
        var file = "test112.Zip";
        saveFile(url,file);  // Text Document
        alert("File is downloaded");

        function saveFile(fileURL,fileName){

             if (!window.ActiveXObject) {
            var save = document.createElement('a');
            save.href = fileURL;
            save.target = '_blank';
            save.download = fileName || fileURL;
            var evt = document.createEvent('MouseEvents');
            evt.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0,
                false, false, false, false, 0, null);
            save.dispatchEvent(evt);
            (window.URL || window.webkitURL).revokeObjectURL(save.href);
            }        
        }

    </script>
</HEAD>
<BODY>

</BODY>
</HTML>

Quand cela fonctionne le fichier suivant est téléchargé -

download.html

Dans download.html il y a

Index de/test

Le localhost: 8080 est le serveur Jetty et localhost: 100 est le serveur Apache

1
Bikram Gangwar

Vous devez vous assurer que les deux serveurs ont exactement le même dossier racine de document défini dans les fichiers de configuration. Dans une nouvelle installation d’Apache, consultez httpd.conf et recherchez un contenu similaire à celui-ci:

#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/path/to/html"

Et changer:

/path/to/html

dans le dossier dans lequel se trouve le fichier texte.

Vous devrez ensuite redémarrer les serveurs Web dont vous avez modifié les fichiers de configuration.

Si le problème persiste, consultez les journaux d'erreurs de chaque serveur Web pour voir le dossier auquel chacun tente réellement d'accéder. Vous voudrez rechercher les erreurs de statut 404 comme signifiant "non trouvé".

1
Mike